﻿// JavaScript Document

var domain = location.hostname;
var host = domain.substring(0,domain.lastIndexOf("."));
host = host.substring(0,host.lastIndexOf("."));
domain = domain.substring(host.length+1);

document.domain = domain;
function getOs()   
{   
   var OsObject = "";   
   if(navigator.userAgent.indexOf("MSIE")>0) {   
        return "MSIE";   
   }   
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
        return "Firefox";   
   }   
   if(isSafari=navigator.userAgent.indexOf("Safari")>0) {   
        return "Safari";   
   }    
   if(isCamino=navigator.userAgent.indexOf("Camino")>0){   
        return "Camino";   
   }   
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){   
        return "Gecko";   
   }   
     
} 


function initSelect(idseldiv,num){
	var selDiv = document.getElementById(idseldiv);
	var selectArr = selDiv.getElementsByTagName("SELECT");
	var len = selectArr.length;
	for(var i=0; i<len; i++){
		for(var j=0;j<=num;j++){
			selectArr[i].add(new Option(j,j));
		}
	}
}

function setSideOrderOption(obj){
	var ul = obj.parentNode.parentNode.parentNode;
	var selNum = obj.value;
	
	var selArr = ul.getElementsByTagName("SELECT");
	var maxsel = ul.getAttribute("maxsel");	
	var hassel = getSelectsValue(selArr);		
	var cansel = maxsel-hassel;		
	//alert(maxsel +" = "+ hassel);
	
	var len = selArr.length;
	for(var i=0;i<len;i++){
		
		if(selArr[i].value==0){		
			selArr[i].options.length=0;
			if(cansel>0){
				for(var j=0;j<=cansel;j++){
					selArr[i].add(new Option(j,j));		
				}
			}else{
				selArr[i].add(new Option(0,0));		
			}
		}else{	
			//如果已经选过option 重新修改
			var num = parseInt(selArr[i].value);
			var setnum = num+cansel;
			selArr[i].options.length=0;
			for(var j=0;j<=setnum;j++){			
				selArr[i].add(new Option(j,j));
			}
			selArr[i].value = num;			
		}
	}	

}


function getSelectsValue(selArr){
	var len = selArr.length;
	var sum = 0;
	for(var i=0;i<len;i++){
		if(parseInt(selArr[i].value)>0){
			sum+= parseInt(selArr[i].value);
		}
	}
	return sum;
}


function checkMaxSelect(obj){
    //alert(obj.name);
    var ul = obj.parentNode.parentNode.parentNode;
    var maxsel = ul.getAttribute("maxsel");
    var checkboxs = ul.getElementsByTagName("input");
    var len = checkboxs.length;
    //alert(len);
    var cbox = 0;
    for(var i=0;i<len;i++){
        if(checkboxs[i].checked == true){
           cbox++; 
        }
    }
    
    if(cbox > maxsel){
        obj.checked = false;
        alert("Max select " + maxsel + " type ");      
    }        
}

function offsetTops(obj){
	var parent = obj.parentNode;
	var h = 0;
	while(parent && parent.tagName!="BODY" && parent.tagName!="HTML"){
		
		if(parent.parentNode){
			
			if(parent.style.position!="absolute" && parent.style.position!="relative") {	
				h+=parent.offsetTop;
				//alert(h+" + = "+parent.offsetTop+"  ="+parent.tagName+" -- "+parent.getAttribute("id"));
			}
			parent =  parent.parentNode;			
		}else{
			parent = null;	
		}	
	}
	return h;
}



function getElementPos(elementId){   
    var ua = navigator.userAgent.toLowerCase();   
    var isOpera = (ua.indexOf('opera') != -1);   
    var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof   
    var el = document.getElementById(elementId);   
    if (el.parentNode === null || el.style.display == 'none') {   
        return false;   
    }   
    var parent = null;   
    var pos = [];   
    var box;   
    if (el.getBoundingClientRect) // IE   
    {   
        box = el.getBoundingClientRect();   
        var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);   
        var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);   
        return {   
            x: box.left + scrollLeft,   
            y: box.top + scrollTop   
        };   
    }   
    else    
        if (document.getBoxObjectFor) // gecko   
        {   
            box = document.getBoxObjectFor(el);   
            var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0;   
            var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0;   
            pos = [box.x - borderLeft, box.y - borderTop];   
        }   
        else // safari & opera   
        {   
            pos = [el.offsetLeft, el.offsetTop];   
            parent = el.offsetParent;   
            if (parent != el) {   
                while (parent) {   
                    pos[0] += parent.offsetLeft;   
                    pos[1] += parent.offsetTop;   
                    parent = parent.offsetParent;   
                }   
            }   
            if (ua.indexOf('opera') != -1 ||   
            (ua.indexOf('safari') != -1 && el.style.position == 'absolute')) {   
                pos[0] -= document.body.offsetLeft;   
                pos[1] -= document.body.offsetTop;   
            }   
        }   
    if (el.parentNode) {   
        parent = el.parentNode;   
    }   
    else {   
        parent = null;   
    }   
    while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors   
        pos[0] -= parent.scrollLeft;   
        pos[1] -= parent.scrollTop;   
        if (parent.parentNode) {   
            parent = parent.parentNode;   
        }   
        else {   
            parent = null;   
        }   
    }   
    return {   
        x: pos[0],   
        y: pos[1]   
    };   
}   


window.cart = {
	getcartInfo : function(rid){		
		$.Ajax.get("/order/?type=getcartinfo&rid="+rid+"&country="+document.getElementById("country").value+"&domain="+encodeURIComponent(domain),function(x){
			document.getElementById("cartbox").innerHTML = x.responseText;
			window.cart.calcHeight();
		});
	},
	refreshCart : function(){
		
	},
	setGetType:function(obj){
		//alert(obj.value);
		var curType =  document.getElementById("gettypevalue").value;
		if(curType == obj.value) return;
		var rid = obj.getAttribute("rid");
		$.Ajax.get("/order/?type=setgettype&set="+obj.value+"&rid="+rid+"&country="+document.getElementById("country").value+"&domain="+encodeURIComponent(domain),function(x){
			//no change																																								
			if(x.responseText=="0"){ 
				return;
			}else{			
				document.getElementById("cartbox").innerHTML = x.responseText;			
			}
		});	
	},
	lockCart :function(obj){
		var set = obj.getAttribute("set");
		var sticky = document.getElementById("sticky");	
		//var ch = offsetTops(sticky); 
		//获得 元素 x , y 位置 
		var getxy = getElementPos("cartTdBox");
		//ch = 284;
		var ch = Math.ceil(getxy.y)-4;		
		var dh = document.documentElement.scrollTop;
		if(set==0){
			obj.setAttribute("set","1");	
			obj.src = "http://www.9isp.com/images/din.gif";						
			sticky.style.position='';
		}else{	
			obj.setAttribute("set","0");				
			obj.src = "http://www.9isp.com/images/ondin.gif";
		}
		
		sticky.style.position='';	
		if(dh>300){
			var m_top = dh-ch;			
			sticky.style.marginTop = m_top+"px";
		}	
		
	},
	addtocart : function(mid,rid){
		
		$.Ajax.get("/order/?type=addtocart&mid="+mid+"&rid="+rid+"&country="+document.getElementById("country").value+"&domain="+encodeURIComponent(domain),function(x){
			var chooseprice = x.getResponseHeader("chooseprice");
			
			//alert(chooseprice);
			
			if(chooseprice==1){
				document.all?document.attachEvent("onkeydown",cart.escexit):document.addEventListener("keydown",cart.escexit, false);
				//document.addEventListener("keydown",cart.escexit, false);
				if(!document.getElementById("choosepricebox")){
					var cp = document.createElement("div");
					cp.id = "choosepricebox";
					if($.Browse.isIE() && $.Browse.IEVer()<7){
						var t = document.documentElement.scrollTop;
						t = t+document.documentElement.clientHeight/2;
						cp.style.top = t;
					}
					document.body.appendChild(cp);
					var bg = document.createElement("div");
					bg.id = "bg";
					if($.Browse.isIE() && $.Browse.IEVer()<7){
						bg.style.height = document.body.scrollHeight;
						bg.style.top = 0;
						bg.style.position = "absolute";
						var sh = document.documentElement.scrollHeight;	
					}else{
						var sh = document.documentElement.clientHeight;	
					}
					document.body.appendChild(bg);
				}
				
				document.getElementById("choosepricebox").innerHTML = x.responseText;
				
				var cph = $("choosepricebox").offsetHeight;
				initChoosePrice();
				
				$("choosepricebox").style.marginTop="0px";
				$("choosepricebox").style.top=((sh-cph)/2)+"px";
				
				//set sideorder Advanced select 							
				window.cart.initSelectOption();
				setTimeout(function(){
					document.forms["choose"].ok.focus();
				},100);				
			}else if(chooseprice==2){
				setTimeout(function(){
					alert(x.responseText);
				},100);		
				return;
			}else{
				document.getElementById("cartbox").innerHTML = x.responseText;
				//window.cart.initSelect();
				window.cart.calcHeight();
				
			}
		});		
	},
	initSelectOption : function(){
		
		var soDiv =  document.getElementById("sideOrderBox");		
		var inputs = soDiv.getElementsByTagName("INPUT");
		var len = inputs.length;
		
		var initArr = null;
		for(var i=0; i<len; i++){
			if(inputs[i].type=="hidden" && inputs[i].name == "initselect"){	
				//alert(inputs[i].value+" -- "+inputs[i].getAttribute("selnum"));
				initSelect(inputs[i].value,inputs[i].getAttribute("selnum"));
			}
		}
	},
	removefromcart : function(mid,rid,sok){
		// sok 用来删除同一道菜，不同配菜的 key 值,不然会删除最顶端的第一条
		$.Ajax.update("/order/?type=removefromcart&mid="+mid+"&rid="+rid+"&sok="+sok+"&country="+document.getElementById("country").value+"&domain="+encodeURIComponent(domain),document.getElementById("cartbox"));
	},
	clearcart : function(){
		$.Ajax.update("/order/?type=clearcart&country="+document.getElementById("country").value+"&domain="+encodeURIComponent(domain),document.getElementById("cartbox"));
	},
	calcHeight : function(){		
		var m = document.getElementById("menulist");
		if(!m) return;
		var h = document.documentElement.scrollHeight-150;
		h = h-(document.documentElement.scrollHeight-document.documentElement.clientHeight)-150;
		if(document.getElementById("menulist").clientHeight > h){
			document.getElementById("menulist").style.height = h + "px";
		}
	},
	removePricePannel : function(){
		var pbox = document.getElementById("choosepricebox");
		var speed = 50;
		//document.body.removeChild(document.getElementById("bg"));
		$("bg").remove();
		//$("choosepricebox").remove();
		//if(getOs()=="MSIE"){
		if(document.all){	
			speed = 10;
		}
		
		//pbox.style.display = "none";
		//alert(speed);
		setTimeout(function(){window.top.cart.setPriceBoxStyle(pbox,1,speed)},speed);	
	},
	setPriceBoxStyle:function(pbox,scrollHeight,speed){
		//var pbox = document.getElementById("choosepricebox");
		var top = parseInt(pbox.style.top);	
		var hidden = 100-scrollHeight*4;
		if(scrollHeight>28){
			pbox.innerHTML = "";
			//document.body.removeChild(pbox);	
			pbox.remove();
			return;
		}else{		
			//alert(scrollHeight);
			pbox.style.top=(top+scrollHeight)+"px";
			pbox.style.filter = "alpha(opacity="+(hidden-scrollHeight)+")";
			pbox.style.opacity = hidden/100;	
			setTimeout(function(){window.cart.setPriceBoxStyle(pbox,scrollHeight+3,speed)},speed);
		}
	},
	choosePrice : function(f,menudetail){
		var ps = f.price;		
		var qty = f.qytVal.value;
		var pid = "";
		if(ps){
			for(var i=0; i<ps.length; i++){
				if(ps[i].checked){
					pid = ps[i].value;
					break;
				}
			}
		}

		
		//get sideorder price
		var sideorder="",catsideorder="";
		var so = f.sideorder;
		//check have sideorder list
		var sol = $("#sideOrderBox .sideOrderList");
		
		// sid  是检测第几个sideorder 的选项的位置
		// order sideorder 下面 item 选项的位置
		if(sol){
			var radios = $("sideOrderBox").getElementsByTagName("input");				
			var len = radios.length;
			var key,val,kv="",catkv="";
			//get video array( kay and value)
			// 1:1:1 
			// 第一个1 是检测第几个sideorder 的选项的位置
			// 第二个1 sideorder 下面 item 选项的位置
			// 第三个1 订购sideorder 数量
			
			//check box
			for(var i=0;i<len;i++){
				if(radios[i].checked){	
					//alert(radios[i].name);
					//global cat sideorder
					if(radios[i].name.indexOf("catsideorder")>-1){ 
						if(catkv) catkv+=",";
						catkv+=radios[i].getAttribute("sid")+":"+radios[i].getAttribute("position")+":1";	
					}else{		
						if(kv) kv+=",";
						kv+=radios[i].getAttribute("sid")+":"+radios[i].getAttribute("position")+":1";	
					}
				}
			}
						
			//set Advanced sideorder options
			var selects = $("sideOrderBox").getElementsByTagName("SELECT");	
			var slen = selects.length;
			if(slen>0){
				for(var i=0;i<slen;i++){
					if(selects[i].value>0){
						if(selects[i].name.indexOf("catsideorder")>-1){ 
							if(catkv) catkv+=",";
							catkv+=selects[i].getAttribute("sid")+":"+selects[i].getAttribute("position")+":"+selects[i].value;	
						}else{
							if(kv) kv+=",";
							kv+=selects[i].getAttribute("sid")+":"+selects[i].getAttribute("position")+":"+selects[i].value;	
						}						
					}
				}
			}
			
			if(kv) sideorder = "&sideorder="+kv;
			if(catkv) sideorder+="&catsideorder="+catkv;
		}
					
		//alert(sideorder);
		//if(pid=="" && sideorder=="&sideorder=")return;
		var instruction = f.instruction.value.replace(/(^\s*)|(\s*$)/g,"");
		if(instruction.length>50){ instruction=instruction.substring(0,120);  }
		//alert(instruction);
		//alert(f.country.value);
		var country = f.country.value;
		if(country==undefined) country="us";
		
		var url = "/order/?type=addtocart&rid="+f.rid.value+"&country="+country+"&mid="+f.mid.value+"&pid=" + pid +"&qty="+qty+sideorder + "&second=1&domain="+f.domain.value+"&instruction="+encodeURIComponent(instruction);
		$.Ajax.get(url, function(x){	
			//this is come from menudetail link 					 
			if(menudetail==1){
				var content = x.responseText;
				if(content.indexOf("<table")!=-1){
					document.getElementById("cartbox").innerHTML = x.responseText;
					window.location="./";
				}else{
					alert(x.responseText);
					return;
				}				
				
			}else{				
				document.getElementById("cartbox").innerHTML = x.responseText;
				window.cart.calcHeight();
				cart.removePricePannel();		
			}
		});
	},
	escexit : function(evt){
		if(evt.keyCode==27){
			cart.removePricePannel();	
			document.all?document.detachEvent("onkeydown",cart.escexit):document.removeEventListener("keydown",cart.escexit, false);
			//document.removeEventListener("keydown",cart.escexit, false);
		}
	}
};
function addtocart(mid){
	var rid = document.getElementById("restid").value;
	cart.addtocart(mid,rid);
}
function removefromcart(){
	var rid = this.getAttribute("rid");
	var mid = this.getAttribute("mid");
	var sok = this.getAttribute("sok");
	cart.removefromcart(mid,rid,sok);
}
function clearcart(){
	cart.clearcart();
}
function showCloseBtn(tr){
	tr.style.backgroundColor = "#ffffcc";
	var html = "&times;";
	var td = tr.getElementsByTagName("td")[0];
	td.className = "e";
	td.onclick = removefromcart;
	td.innerHTML = html;
}
function hideCloseBtn(tr){
	tr.style.backgroundColor = "#ffffff";
	var td = tr.getElementsByTagName("td")[0];
	td.className = "";
	td.onclick = null;
	td.innerHTML = td.title+".";
}
function sticky(){
	var sticky = document.getElementById("sticky");	
	if(!sticky) return;
	//lock shopping cart
	var lockcart = document.getElementById("lockcart");
	if(lockcart!="undefined" && lockcart!=null){
		if(lockcart.getAttribute("set")==1){
			scrollCart();
		}		
	}else{	
		scrollCart();
	}
}

function scrollCart(){
	var sticky = document.getElementById("sticky");	
	//alert(document.body.scrollTop);
	var scroll_top = Math.max(document.documentElement.scrollTop,document.body.scrollTop);
	//alert(scroll_top);
	if(scroll_top>=300){
		sticky.style.position = "fixed";
		sticky.style.top = 0;
		sticky.style.marginTop = "2px";
	}else{
		sticky.style.position = "";
	}
}

function initChoosePrice(){
	var choosemain = document.getElementById("choosemain");
	var cpheight = choosemain.clientHeight;
	if(cpheight>400){
		choosemain.style.cssText="overflow-y:scroll;";
	}
}

if(document.all){
	document.documentElement.onscroll = sticky;
	window.onresize = window.cart.calcHeight;
}else{	
	document.addEventListener('scroll', sticky, false);	
	window.addEventListener('resize', window.cart.calcHeight, false);		
}


