
;(function(window,undefined){

	function hasLoadedScript(url){
		var scripts = document.getElementsByTagName('script');
		if(scripts == null || scripts.length <= 0){
			return false;
		}
		var i = 0;
		while(i < scripts.length) {
			var script = scripts[i];
			if(script.src === url) {
				return true;
			}
			i=(i+1)|0;
		}

		return false;
	};

    function loadScript(url, callback) {

    	if(hasLoadedScript(url)){
    		callback(false);
    		return;
    	}

        var script = document.createElement('script');

        script.type  = 'text/javascript';
        script.async = true;
        script.src   = url

        var entry = document.getElementsByTagName('script')[0];
        entry.parentNode.insertBefore(script, entry);

        if (script.addEventListener) {
            script.addEventListener('load', callback, false);
        } else {
            script.attachEvent('onreadystatechange', function() {
                if (/complete|loaded/.test(script.readyState)) {
                    callback(true);
                }
            });
        }
    };

    function injectCss(css) {
    	var style = document.createElement('style');
    	style.type = "text/css";
    	css = css.replace(/\}/g, "}\n");

    	if (style.styleSheet) {
    		style.styleSheet.cssText = css;
    	} else {
    		style.appendChild(document.createTextNode(css));
    	}

    	var entry = document.getElementsByTagName('script')[0];
    	entry.parentNode.insertBefore(style,entry);
    };

    var product_init_func = function($element,$,response){
		$element.html(response.data.text).ready(function(){

			$element.off('click.regimag.gadget.article.toggle').on('click.regimag.gadget.article.toggle','.gadget-inner .keiba-open-button',function(event){
				try {

					event.preventDefault();
					var $open_button = $(this);
					var show_state = $open_button.attr('data-show-state');
					$element.find('.keiba-hit-open').each(function(){
				        var $sub_article = $(this);
				        if (show_state == "0") {
				        	$sub_article.show();
				        } else {
				        	$sub_article.hide();
				        }
					});

					if(show_state == "0"){
						$open_button.html('<i class="fa fa-chevron-up"></i>詳細を閉じる');
						$open_button.attr('data-show-state','1');
					} else {
						$open_button.html('<i class="fa fa-chevron-down"></i>詳細を見る');
						$open_button.attr('data-show-state','0');
					}

				} catch(e) {
					if(console) {
						console.log(e);
					}
				}
				return false;
			});

			$element.off('click.regimag.gadget.horse_racing.toggle').on('click.regimag.gadget.horse_racing.toggle','.gadget-inner .race-result-open',function(event){
				try {
					event.preventDefault();
					var $open_button = $(this);
			        var $sub_info = $open_button.parent().parent().next('div');
			        if ($sub_info.is(':hidden')) {
			        	$sub_info.show();
			        	$open_button.html('<span class="fa fa-hand-o-right" aria-hidden="true"></span><strong>レース結果・払戻金を閉じる</strong>');
			        } else {
			        	$sub_info.hide();
			        	$open_button.html('<span class="fa fa-hand-o-right" aria-hidden="true"></span><strong>レース結果・払戻金を表示</strong>');
			        }

				} catch(e) {
					if(console) {
						console.log(e);
					}
				}
				return false;
			});

		    //出走までカウントダウン
			var $timer = $element.find('.gadget-inner .timer');
			$timer.each(function(){
				var $this = $(this);
				$this.yycountdown({
			        endDateTime: $this.data('race-datetime'),
			        unit          : {d: '日', h: '時間', m: '分', s: '秒'}
			    });
			});

			setTimeout(gadget_resize($element),10);

		});
    };

    var gadget_resize = function($element){
    	var y = 480;
    	return function(){
	        var $box = $element.find('.gadget-inner');
	        $box.each(function(){
	            var $this = RegimagGadget.jQuery(this);
	            if ($this.width() <= y) {
	                $this.addClass('short_window');
	            } else {
	                $this.removeClass('short_window');
	            }
	        });
    	};
    };

    var product_func = function(RegimagGadget,$){

    	if($('#regimag_gadget_content_thanks_alpha_screen').size() <= 0) {
			RegimagGadget.api('thanks_comment_parts',{},function(response){
				if(response.data && response.data.result) {
					if($('#regimag_gadget_content_thanks_alpha_screen').size() <= 0) {
						$(document.body).append(response.data.html);
					}
				}
			});
    	}

		$('.regimag-product').each(function(){
			var $observer = $(this);
			if($observer.attr('data-loading')) {
				return false;
			}
			$observer.attr('data-loading',true);
			;(function($element){
				RegimagGadget.ThanksComment.create($element);
				var request_params = {
					content_type : $element.data('content-type'),
					content_id : $element.data('content-id'),
					open_mode : $element.data('open-mode'),
					affiliation : $element.data('affiliation'),
					summary_af  : $element.data('summary-af')
				};
				RegimagGadget.api('product',request_params,function(response){
					product_init_func($element,$,response);
				});
			})($observer);
		});

		$('.regimag-product-article').each(function(){
			var $observer = $(this);
			if($observer.attr('data-loading')) {
				return false;
			}
			$observer.attr('data-loading',true);
			;(function($element){
				RegimagGadget.ThanksComment.create($element);
				var request_params = {
					content_type : $element.data('content-type'),
					content_id : $element.data('content-id'),
					content_detail_id : $element.data('content-detail-id'),
					open_mode : $element.data('open-mode'),
					affiliation : $element.data('affiliation'),
					summary_af  : $element.data('summary-af')
				};
				RegimagGadget.api('product_article',request_params,function(response){
					product_init_func($element,$,response);
				});
			})($observer);
		});
    };

    var sdk_url = "https://regimag.jp/js/gadget_sdk.js";
    var css_url = "https://regimag.jp/gadget/css";
    var jquery_url = "https://regimag.jp/js/jquery-1.11.3.min.js";
    var jq_inview_url = "https://regimag.jp/js/gadget/jquery.inview.min.js";
    var jq_tmplate_url = "https://regimag.jp/js/gadget/jquery.tmpl.min.js";
    var jq_countdown_url = "https://regimag.jp/js/gadget/jquery.yycountdown.min.js";
    var thanks_comment_url = "https://regimag.jp/js/gadget/thanks_comment.js";

	if(typeof RegimagGadget !== "undefined" && RegimagGadget.loaded) {
		product_func(RegimagGadget,RegimagGadget.jQuery);
	} else {
		loadScript(sdk_url, function(sdk_load_event) {
			if(!sdk_load_event){
				return false;
			}
			loadScript(css_url, function(css_load_event){
				if(!css_load_event){
					return false;
				}
				injectCss(RegimagGadget.style);
				var temp_$ = window.$;
				var temp_jQuery = window.jQuery;
		        loadScript(jquery_url,function(jquery_load_event){
		        	if(!jquery_load_event) {
		        		return false;
		        	}
	        		if(typeof RegimagGadget.jQuery === "undefined") {
	        			RegimagGadget.jQuery = jQuery.noConflict(true);
	        			if(typeof window.$ === "undefined") {
	        				window.$ = temp_$;
	        			}
	        			if(typeof window.jQuery === "undefined") {
	        				window.jQuery = temp_jQuery;
	        			}
	        		}
	        		var script_path_list = [jq_inview_url,jq_tmplate_url,jq_countdown_url,thanks_comment_url];
	    			RegimagGadget.init(function(){
	    				RegimagGadget.script(script_path_list,function(){
	    					RegimagGadget.loaded = true;
	    					product_func(RegimagGadget,RegimagGadget.jQuery);
	    				});
	    			});
		        });
			});
	    });
	}
})(this);
