// Timer
function Timer(c,d,e){var f=check(c);var g=check(d,1000);var h=check(e,0);var i=0;this.start=function(){start_timer()};this.stop=function(){i=check(e,0);clearTimer()};this.pause=function(){clearTimeout()};function start_timer(){setTimeout(call,g)};function call(){i++;f(i);if(h>i||h==true){start_timer()}};function check(a,b){if(!b){b=false}if(a){return a}else{return b}}};
// LightBox Class
function LightBox(idin,xin,yin,widthin,heightin,htmlin,attin){var id=idin;var x=xin;var y=yin;var width=widthin;var height=heightin;var html=htmlin;var att=attin;var name="[Object LightBox]";var self=this;var me;var callbacks=new Array();var active=false;var target=document.body;if(init_check()){init()};function init_check(){if(!id){alert(name+" : 'id' not found");return false};if(isNaN(x)){alert(name+" : 'x' not found");return false};if(isNaN(y)){alert(name+" : 'y' not found");return false};if(isNaN(width)){alert(name+" : 'width' not found");return false};if(isNaN(height)){alert(name+" : 'height' not found");return false};return true};function init(){self.open=function(){open()};self.close=function(){close()};self.toggle=function(){toggle()};self.getInnerHTML=function(){return getInnerHTML()};self.setInnerHTML=function(html){me.innerHTML=html};self.appendInnerHTML=function(html){me.innerHTML=getInnerHTML()+html};self.getLightBox=function(){return getLightBox()};self.setTarget=function(id){return setTarget(id)};create_me()};function setTarget(id){var t=document.getElementById(id);if(t){target=t}};function open(){if(!document.getElementById(id)){target.appendChild(me);active=true}};function close(){target.removeChild(me);active=false};function toggle(){if(active){close()}else{open()}};function getInnerHTML(){if(me){if(me.innerHTML){return me.innerHTML}else{return false}}else{return false}};function getLightBox(){return me};function create_me(){me=document.createElement("div");if(att){for(var i in att){me.setAttribute(i,att[i]);if(!me[i]){me[i]=att[i]}}};me.setAttribute("id",id);if(html){me.innerHTML=html};me.style.zIndex=999;me.style.position="absolute";me.style.left=x;me.style.top=y}};
// common.js
function setSelect(a,b){var h=document.getElementById(a);for(var i=0;i<b.length;i++){if(b[i]){if(b[i].selected){h.value=b[i].value}}}};function collapse_list(a,b){if(!b){b=5};var t=document.getElementById(a);var c=new Object();for(var i=0;i<t.childNodes.length;i++){if(i>b){if(t.childNodes[i].style){t.childNodes[i].style.visibility="hidden"}}}};function list_popup(a,c){var t=document.getElementById(a);var b=document.getElementById(c);b.innerHTML=t.innerHTML;b.style.backgroundColor="#FFFFFF";b.style.border="1px solid grey";b.style.position="absolute";if(window.clientWidth){var w=window.innerWidth;var h=window.innerHeight}else{var w=document.documentElement.clientWidth;var h=document.documentElement.clientHeight};b.style.top=(h-b.style.offsetHeight)+"px";b.style.left=((w-b.style.width)/2)+"px";for(var i=0;i<b.childNodes.length;i++){if(b.childNodes[i].style){if(b.childNodes[i].style.visibility=="hidden"){b.childNodes[i].style.visibility="visible"}}};var d=new DragAndDrop();d.start(b)};function expand_list(a){var t=document.getElementById(a);for(var i=0;i<t.childNodes.length;i++){if(t.childNodes[i].style){if(t.childNodes[i].style.visibility=="hidden"){t.childNodes[i].style.visibility="visible";var h=new Tween(t.childNodes[i],"height",Tween.StrongEaseOut,1,15,1,"px");h.start()}}}};function initRollovers(){if(!document.getElementById){return};var b=new Array();var c;var d=document.getElementsByTagName('img');for(var i=0;i<d.length;i++){if(d[i].className=='imgover'){var e=d[i].getAttribute('src');var f=e.substring(e.lastIndexOf('.'),e.length);var g=e.replace(f,'_ov'+f);d[i].setAttribute('hsrc',g);if(d[i].id=="tab_pickup"){d[i].setAttribute("src",d[i].getAttribute('hsrc'))};b[i]=new Image();b[i].src=g;d[i].onmouseover=function(){c=this.getAttribute('src');this.setAttribute('src',this.getAttribute('hsrc'))};d[i].onmouseout=function(){var a=this.getAttribute("class");if(a!=""){if(!c)c=this.getAttribute('src').replace('_ov'+f,f);this.setAttribute('src',c)}}}}};try{window.addEventListener("load",initRollovers,false)}catch(e){window.attachEvent("onload",initRollovers)};function MM_openBrWindow(a,b,c){window.open(a,b,c)};function win_close(){window.close()};function initTabs(a,b){for(var i=0;i<a.length;i++){var c=document.getElementById(a[i]);if(i!=b){c.setAttribute("src",c[i].src.replace("_ov",""));c.setAttribute("class","imgover");c.setAttribute("hsrc",c[i].src+"_ov")}else{c.setAttribute("src",c[i].src+"_ov");c.setAttribute("class","");c.setAttribute("hsrc","")}}};function showTab(b,c){var d=new Array();d[0]="tabDetail";d[1]="tabPhoto";var e;if(d.length>0){for(var t=0;t<d.length;t++){e=document.getElementById(d[t]);if(b==t){var a=new OpacityTween(e,Tween.StrongEaseIn,0,100,0.5);var f=document.getElementById(c);if(f.className=="imgover"){f.setAttribute("class","");if(f.src.indexOf("_ov")==-1){var g=f.src.substring(f.src.lastIndexOf('.'),f.src.length);f.setAttribute("src",f.src.replace(g,'_ov'+g))};e.style.display="block";a.start()}}else{var h=document.getElementsByTagName('img');if(h.length>0){for(var i=0;i<h.length;i++){if(h[i].src.indexOf("btn_tab")>=0){if(h[i].id!=c){h[i].src=h[i].src.replace("_ov","");h[i].setAttribute("class","imgover")}}}};e.style.display="none"}}}};
// main.js
function setLocation(a,b){if(b.value!=""){window.location.href="http://qpon.jp/"+a.value+"/"}};function on_sub_news_click(a){if(a){a.value="";a.style.color="#000000"}};
// counter.js -> with Japanese 
var ms = 0;
var days = 0;
var hc = null;
var mc = null;
var full_length = false;
var current_length = false;
var stop = false;
var num_of_btn = 3;
var unlocked = true;
var soldout_lock = false;
var hc, mc;
var tcounter = 0;
var ajax_interval = 10;

function counter_jump(t, distance, dur){
	t.style.position = 'relative';
	t.style.top = 0;
	var up = new Tween(t, "y", Tween.StrongEaseOut, 0, -(distance), dur/2, "px");
	var down = new Tween(t, "y", Tween.BounceEaseOut, -(distance), 0, dur, "px");
	var s = new Sequence();
	s.add(up);
	s.add(down);
	s.start();
}

function timer_img_counter(){
	if (full_length == false && current_length == false){
		// initialize
		var full = document.getElementById("full_length");
		var current = document.getElementById("current_length");
		full_length = full.value;
		current_length = current.value;
	}
	else {
		current_length--;
	}
	var time_img = 100;
	var step = 10;
	var max = 100;
	var prev = 0;
	var ratio = Math.floor((current_length / full_length) * 100);
	for (var i = prev; i <= max; i += step){
		if (ratio >= prev && ratio <= i){
			time_img = i;
			break;
		}
		else {
			prev = i;
		}
	}
	var prefix = document.getElementById("timer_img_path");
	var img = document.getElementById("side_img_timer");
	img.src = prefix.value+time_img+".gif";	
}

function check_soldout(){
	var flag = document.getElementById("soldout_flag");
	if (flag){
		if (flag.value == 'true'){
			soldout_lock = true;
		}
	}
}

function main(d1,h1,m1,s1){
	check_soldout();
	//call_sold_num();
	// initialize counter
	days = d1;
	ms = (parseInt(d1)*24*60*60) + (parseInt(h1)*60*60) + (parseInt(m1)*60) + parseInt(s1);
	clock_counter();
}

function ct(s,l,mod){
	var d = Math.floor((s/l)%mod).toString();   
	return d;
}

function clock_counter(){
	//var days = ct(ms,86400,100000);
	//var h = ct(ms,3600,24);
	var days = 0;
	var h = Number(ct(ms, 3600, 24)) + Number((ct(ms, 86400, 100000) * 24)); // display over 24 hours
	var m = ct(ms, 60, 60);
	var d = ct(ms, 1, 60);
	var dist = 15;
	var duration = 0.5;
	var hours = document.getElementById("hr1");
	var min = document.getElementById("hr2");
	var sec = document.getElementById("hr3");
	// timer image
	timer_img_counter();
	// count
	if (hours){
		hours.innerHTML = pad(h);
	}
	if (min){
		min.innerHTML = pad(m);
	}
	if (sec){
		sec.innerHTML = pad(d);
	}
	// check jump and Ajax
	// jump hours
	if (h.toString().substring(1, 2) == "0" || h == "0"){
		if (hc != h.toString().substring(0, 1)){
			if (hours){
				counter_jump(hours, dist, duration);
				hc = h.toString().substring(0, 1);
			}
		}
	}

	// jump minutes
	if (m.toString().substring(1, 2) == "0" || m == "0"){ 
		if (mc != m.toString().substring(0, 1)){
			if (min){
				counter_jump(min, dist, duration);
				mc = m.toString().substring(0, 1);
			}
		}
	}
	
	// jump seconds
	if (d.toString().substring(1, 2) == "0" || d == "0"){
		if (sec){
			counter_jump(sec, dist, duration);
		}
	}
	
	if (tcounter == ajax_interval){
		// call ajax 
		call_sold_num();
		tcounter = 0;
	}
	else {
		tcounter++;
	}
	
	// check for time out
	if (days == 0 && h == 0 && m == 0 && d == 0){
		document.getElementById("timer").innerHTML = '<p id="timer"><p id="timer_parent"><span id="hr3">販売終了</span></p></p>';
        	// lock buy button
        	if (!stop){
			lock_buy("/img/product/cmn/btn/btn_timeout.gif");
			stop = true;
			unlocked = true;
        	}	
        }
        
        ms = ms - 1;
        
        if(ms >= 0){
		setTimeout(clock_counter, 1000);
	}
	else if(!stop){
		document.getElementById("timer").innerHTML = '<p id="timer"><p id="timer_parent"><span id="hr3">販売終了</span></p></p>';
		if (!document.getElementById("hr3")){
    		show("timer_parent", "hr3");
    	}
    	lock_buy("/img/product/cmn/btn/btn_timeout.gif");
    	stop = true;
    	unlocked = true;
	}
}

// lock buy button
function lock_buy(img_path){
	if (!soldout_lock){
		for(var b = 0; b < num_of_btn; b++)
		{
			var buy_btn = document.getElementById("buy_btn"+b);
			if (buy_btn){
				 var value = '<p><img src="'+img_path+'" alt="販売終了" width="190" height="48" /></p>';
				 if (b == 0){
				 	value += '<p id="closed_msg" class="added_info" style="display: block;">クーポンの追加や販売情報を受け取りたい場合は<a href="http://twitter.com/Qpon/">@Qpon_tokyo</a>をツイッターでフォローまたは<a href="https://secure.qpon.jp/register/">無料会員登録</a>をしてお待ちください。</p>';
				 }
				buy_btn.innerHTML = value;
				
			}
		}
		unlocked = false;
	}
}

function unlock_buy(){
	var value = document.getElementById('buy_btn_value');
	if (value){
		if (!unlocked || soldout_lock){		
			for(var b = 0; b < num_of_btn; b++){
				var buy_btn = document.getElementById("buy_btn"+b);
				buy_btn.innerHTML = value.innerHTML;
			}
			unlocked = true;
			stop = false;
			soldout_lock = false;
		}
	}
}

// sold num stuff
function call_sold_num(){
	var path = document.getElementById("ajaxpath");
	if (path){
		// call ajax
		d = new Date();
		ajax(path.value);
	}
}

function sold_num_reader(obj){
	if (obj){
		var how_many_more = document.getElementById("how_many_more");
		if (!how_many_more.null_object){
			var left = (Number(obj.min_sold_num) - Number(obj.sold_num));
			if (how_many_more.innerHTML != left){
				if (left <= 0){
					how_many_more.innerHTML = "<strong>成立中</strong>";
				}
				else {
					how_many_more.innerHTML = '<strong>' + left + '</strong>人';
				}
			}
		}
		var sold_num_img = document.getElementById("sold_num_img");
		if (sold_num_img){
			var sip = document.getElementById("sold_num_img_path");
			if (sold_num_img.anchor != obj.sold_num_img){
				sold_num_img.style.filter = "alpha(opacity=100)";
				sold_num_img.src = sip.value+'/'+obj.sold_num_img+'?'+epoch();
				sold_num_img.anchor = obj.sold_num_img;
				var a = new OpacityTween(sold_num_img, Tween.StrongEaseInOut, 0, 100, 2);
				a.start();
			}
		}
		var sold_num = document.getElementById("sold_num");		
		if (sold_num){
			if (sold_num.innerHTML != "<strong>"+obj.sold_num+"</strong>人" && obj.sold_num){
				sold_num.innerHTML = "<strong>"+obj.sold_num+"</strong>人";
			}
			else if (obj.sold_num == 0){
				sold_num.innerHTML = "<strong>0</strong>人";
			}
		}	
		var items_left = document.getElementById("items_left");		
		if (items_left){
			if (items_left.innerHTML != (Number(obj.max_sold_num) - Number(obj.sold_num))){
				items_left.innerHTML = comma((Number(obj.max_sold_num) - Number(obj.sold_num)));
				// out of stock
				if ((Number(obj.max_sold_num) - Number(obj.sold_num)) <= 0){
					lock_buy("/img/product/cmn/btn/btn_soldout.gif");
					soldout_lock = true;
					stop = true;					
				}
				else if ((Number(obj.max_sold_num) - Number(obj.sold_num)) > 0){
					// stock added and need to restart
					unlock_buy();
				}
			}
		}
	}
}
 function Calcage(secs, num1, num2)
  {
    s = ((Math.floor(secs/num1))%num2).toString();
    if (s.length < 2) 
    {    
      s = "0" + s;
    }
    return (s);
  }

function start_product_timer(h, ds, hr, min, sec)
{
	if(hr!=00 || min!=00 || sec!=00)
	{
		var pms = (parseInt(ds) * 24 * 60 * 60) + (parseInt(hr)*60*60) + (parseInt(min)*60) + parseInt(sec);
	}
	else
	{
		var pms = 0;
	}
	do_count(h,pms);
}

function do_count(h,pms)
{
		h1 = (Number(Calcage(pms, 3600, 24)) + Number((Calcage(pms, 86400, 100000) * 24))).toString(); // can display over 24 hours
		m1 = Calcage(pms,60,60);
		d1 = Calcage(pms,1,60);

		if (isNaN(h1)){
			h1 = 0;
		}
		if (isNaN(m1)){
			m1 = 0;
		}
		if (isNaN(d1)){
			d1 = 0;
		}

		if(h1!=0 || m1!=0 || d1!=0)
		{
			var str = pad(h1)+"<span>時間</span>"+pad(m1)+"<span>分</span>"+pad(d1)+"<span>秒</span>";
		}
		else
		{
			var str = "販売終了";
			// time out
			var img = document.getElementById("indicator_" + h);
			if (img){
				img.src = '/img/product/arealist/img_timeout.gif';	
			};
			var price = document.getElementById("price_" + h);
			if (price){
				var cls = str_replace('onsale', 'timeout', price.className);
				cls = str_replace('soldout', 'timeout', cls);
				price.className = cls;
			};
		}

		if(document.getElementById("timer"+h))
		{
				var el = document.getElementById("timer"+h);
				var el_new = document.createElement("span");
				el_new.setAttribute("id","timer"+h);
				el_new.innerHTML = str;
				el.parentNode.appendChild(el_new);
				el.parentNode.removeChild(el);
		}
	if(pms > 0){
		setTimeout('do_count('+h+','+(pms-1)+')',1000);
	}
}

function hide(parent, target){
	var p = document.getElementById(parent);
	var t = document.getElementById(target);
	if (p && t){
	    p.removeChild(t);
	}
}

function show(parent, target){
	var p = document.getElementById(parent);
	var t = document.getElementById(target);
	if (p && !t){
		var i = document.createElement("span");
		i.setAttribute("id", target);
		i.style.position = "relative";
		i.style.top = "0px";
		i.style.left = "0px";
		i.innerHTML = "10";
		p.appendChild(i);
	}
}

function padding(n, ignore){
        if (ignore){
        	return n;
        }
	n = Number(n);
        if (n < 10){
            return "0"+n;
        }
        else {
            return n;
        }
}

// random banner
function rand_banner_replace(params){var target_id=params.target_id;var img_list_id=params.list_id;var e=document.getElementById(target_id);var img_list=get_hidden_values(img_list_id);if(e&&img_list){var num=rand(0,img_list.length-1);e.innerHTML=img_list[num].innerHTML}};function get_hidden_values(id,assoc){if(!assoc){assoc=false};var e=document.getElementById(id);if(e){var nodes=e.getElementsByTagName("*");if(nodes){var c=0;var res=new Array();for(var i=0;i<nodes.length;i++){if(nodes[i]&&nodes[i].id){if(assoc){res[nodes[i].id]=nodes[i]}else{res[c]=nodes[i];c++}}};return res}else{return false}}else{return false}};
