
/**
 * @author borllor
 */
var cookie_domain='skypoints.';
var cookie_prefix='';
function computeStringLen(str)
{
	var len = 0;   
    for(var i=0;i<str.length;i++)   
    {   
        if(str.charCodeAt(i)<128)   
            len++;
        else   
            len+=2;
    } 
	return len;
}

function trimL(str)
{
    for(i=0;str.charAt(i)==" "||str.charAt(i)=="　";i++){}
    str=str.substring(i,str.length);
    for(i=str.length-1;str.charAt(i)==" "||str.charAt(i)=="　";i--){}
    str=str.substring(0,i+1);return str;
};
function trimR(str)
{
    var s=str;
    var len=s.length;
    var i=0;
    var flag=0;
    var flagn=0;
    var result="";
    while(i<len)
    {
        ch=s.charAt(i);
        if(ch=="\n"||ch=="\r")
        {
            if((flagn==1)&&(ch=="\n"))
            {
                flag++;
                flagn=0;
            }
            else if(ch=="\r")
            {
                flagn=1;
            }
            i++;
            if(flag==1)
            {
                result=result+ch;
            }
        }
        else
        {
            flag=0;
            flagn=0;
            result=result+ch;
            i++;
        }
    }
    return result;
};

function trim(str) 
{ 
    return trimL(trimR(str));
}

function cutString(str, slen)
{
    var tmp = 0;
    var len = 0;
    var okLen = 0;
    for(var i=0; i<slen; i++)
    {
        if(str.charCodeAt(i)>255){tmp += 2;}
        else{len += 1;}
        okLen += 1;
        if(tmp + len == slen)
        {
            return (str.substring(0,okLen));
        }
        if(tmp + len > slen)
        {
            return (str.substring(0,okLen - 1));
        }
    }   
}
function buildUrl(url,params)
{
    var pairs=new Array();
    var result=url;
    if(params)
    {
        for(var key in params)
        {
            pairs.push(key+"="+encodeURIComponent(params[key].toString()));
        }
        result+="?"+pairs.join("&");
    }
    return result;
}
function redirect(url,params)
{
    document.location.href=buildUrl(url,params);
}
function stopPropagation(e)
{
    if(e)
    {
        if(!e){var e=window.event;}
        e.cancelBubble=true;
        if(e.stopPropagation){e.stopPropagation();}
    }
}
function showLoadingImage(imgId)
{
    var imgCtr = getElement(imgId);
    if (imgCtr != null)
    {
        imgCtr.src = "/images/loading.gif";
    }
}
/*cookie functions*/
function readCookie(name)
{
    var nameEQ=name+"=";
    var ca=document.cookie.split(';');
    for(var i=0;i<ca.length;i++)
    {
        var c=ca[i];
        while(c.charAt(0)==' ')c=c.substring(1,c.length);
        if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function readIntCookie(name)
{
    var val=readCookie(name);
    if(val)
    {
        return parseInt(val,10);
    }
    else
    {
        return 0;
    }
}
function addCookie(name,value,days)
{
    var cookie="";
    var domain="";
    var path="/";
    cookie+=name+"="+value+";";
    //cookie+="domain=."+domain+";";
    cookie+="path="+path+";";
    if(days)
    {
        var date=new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        cookie+="expires="+date.toGMTString()+";";
    }
    document.cookie=cookie;
}
function removeCookie(name)
{
    addCookie(name,"",-1);
}
function changeUICulture()
{
    var a = getElement("changeCultureA")
    var c = readCookie("cult");
    if (c == null)
    {
        addCookie("cult", "zh-cn", 600);
    }
    else if (c.toLowerCase() == "zh-cn")
    {
        addCookie("cult", "en-us", 600);        
    }
    else if (c.toLowerCase() == "en-us")
    {
        addCookie("cult", "zh-cn", 600);        
    }
    window.location = window.location.href;
}
function isChinese()
{
    var cul = "zh-cn";
    cul = readCookie("cult");
    if (cul === "zh-cn")
        return true;
    return false;
}
function getElement(id)
{
	return document.getElementById(id);
}
function getElementRef(instance_or_id){
	return(typeof(instance_or_id)=="string")?getElement(instance_or_id):instance_or_id;
}

function setVisible(divName,onOrOff)
{
	var tempDiv=getElement(divName);
	if(!tempDiv)
	{
		return;
	}
	if(onOrOff)
	{
		tempDiv.style.visibility="visible";
	}
	else
	{
		tempDiv.style.visibility="hidden";
	}
}
function showDivByCheckbox(evt, elName)
{
    evt = evt ? evt : window.event;
    var target = evt.target || evt.srcElement;
    var theElemenet=getElement(elName);
    if (target.type === "checkbox")
    {
       theElemenet.style.display = target.checked ? "block" : "none"; 
    }
}
function showDivBySelect(evt, elName)
{
    evt = evt ? evt : window.event;
    var target = evt.target || evt.srcElement;
    var theElemenet=getElement(elName);
    theElemenet.style.display = target.value == "1" ? "block" : "none"; 
}
function hasClass(element,_className)
{
	if(!element)
	{
		return;
	}
	var upperClass=_className.toUpperCase();
	if(element.className)
	{
		var classes=element.className.split(" ");
		for(var i=0;i<classes.length;i++)
		{
			if(classes[i].toUpperCase()==upperClass)
			{
				return true;
			}
		}
	}
	return false;
}
function addClass(element,_class)
{
	if(!hasClass(element,_class))
	{
		element.className+=element.className?(" "+_class):_class;
	}
}

function setClass(element,_class)
{
	var ctr = getElement(element);
	if (ctr)
	{
		ctr.className = _class;
	}
}
function removeClass(element,_class){
    var upperClass = _class.toUpperCase();
    var remainingClasses = [];
    if(element.className)
    {
        var classes=element.className.split(' ');
        for(var i=0;i<classes.length;i++)
        {
            if(classes[i].toUpperCase() != upperClass)
            {
                remainingClasses[remainingClasses.length]=classes[i];
            }
        }
        element.className=remainingClasses.join(' ');
    }
}
function setInnerHTML(div_id,value)
{
	var dstDiv=getElement(div_id);
	dstDiv.innerHTML=value;
}
function openPopup(url,name,height,width)
{
	var newwindow=window.open(url,name,"height="+height+",width="+width);
	if(window.focus){newwindow.focus()}
	return false;
}
function openDiv(elName)
{
	var theElemenet=getElement(elName);
	if(theElemenet)
	{
		theElemenet.style.display="block";
	}
}
function closeDiv(elName)
{
	var theElemenet=getElement(elName);
	if(theElemenet)
	{
		theElemenet.style.display="none";
	}
}
function showInline(elName)
{
	var theElemenet=getElement(elName);
	if(theElemenet)
	{
		theElemenet.style.display="inline";
	}
}
function hideInline(elName)
{
	var theElemenet=getElement(elName);
	if(theElemenet)
	{
		theElemenet.style.display="none";
	}
}
function blurElement(elName)
{
	var theElement=getElement(elName);
	if(theElement)
	{
		theElement.blur();
	}
}
function focusElement(elName)
{
	var theElement=getElement(elName);
	if(theElement)
	{
		theElement.focus();
	}
}

function disabledElement(ctrId)
{
	var ctr = getElement(ctrId);
	if (ctr != null) ctr.disabled = true;
}

function enabledElement(ctrId)
{
	var ctr = getElement(ctrId);
	if (ctr != null) ctr.disabled = false;
}

function ValidTheStringLength(str, minlen, maxlen)
{
    var len = 0;   
    for(var i=0;i<str.length;i++)   
    {   
        if(str.charCodeAt(i)<128)   
            len++;
        else   
            len+=2;
    }   
    if(len >= minlen & len <= maxlen)   
        return true;
    else   
        return false;
}

function showMessageBox(msg)
{
    alert(msg);
}
function FormatNumber(srcStr,nAfterDot) 
{ 
    var srcStr,nAfterDot; 
    var resultStr,nTen; 
    srcStr = ""+srcStr+""; 
    strLen = srcStr.length; 
    dotPos = srcStr.indexOf(".",0); 
    if (dotPos == -1)
    { 
        resultStr = srcStr+"."; 
        for (i=0;i<nAfterDot;i++)
        { 
            resultStr = resultStr+"0"; 
        } 
        return resultStr; 
    } 
    else
    { 
        if ((strLen - dotPos - 1) >= nAfterDot)
        { 
            nAfter = dotPos + nAfterDot + 1; 
            nTen =1; 
            for(j=0;j<nAfterDot;j++)
            { 
                nTen = nTen*10; 
            } 
            resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen; 
            return resultStr; 
        } 
        else
        { 
            resultStr = srcStr; 
            for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++)
            { 
                resultStr = resultStr+"0"; 
            } 
            return resultStr; 
        } 
    } 
}
function resize_iframe(elid, delta)
{
    var el = getElement(elid);
    if (parseInt(el.height) + parseInt(delta) < 20)
    {
        el.height = 20;
    }
    else
    {
        el.height = parseInt(el.height) + parseInt(delta);
    }
}

function addToFavorite()
{ 
    if (document.all) 
    { 
        window.external.addFavorite("http://www.skypoints.cn","Skypoints"); 
    } 
    else if (window.sidebar) 
    { 
        window.sidebar.addPanel("Skypoints", "http://www.skypoints.cn", ""); 
    } 
    return false;
}
function searchPartner()
{
    var inp = getElement("keyword");
    if (inp.value == "look for a partner") return;
    if (trimR(trimL(inp.value)) == "") return;    
    document.location.href = "../partner.aspx?pn=" + inp.value
}
function ReplaceRequestData(cid, args)
{
    var arg = "";
    if (args)arg = args;
    cid = cid.replace(/\_/g, "$");
    if (typeof(__doPostBack) === "function")__doPostBack(cid, arg);
}
function setTimeRangeEnabled(ctrId, selCtrId)
{
    var ctr = getElement(ctrId);
    var selCtr = getElement(selCtrId);
    if (ctr.value == "0")
    {
        selCtr.disabled = true;
    }
    else
    {
        selCtr.disabled = false;        
    }
}
var popgp=null;
function showgetpassword(){
    closePopup();
    var title = 'Lost of your username/password';
    if (isChinese())title = "忘记用户名/密码";
	popgp = new Popup({contentType:1,isSupportDraging:true,isReloadOnClose:false,width:460,height:200});
	popgp.setContents({'title':title,'contentUrl':'../getbackpassword.aspx'});
	popgp.build().show();
}
var poplp=null;
function showlogin(des){
    var desurl = "";
    closePopup();
	if (des)desurl = des;
    var title = 'Please Login in';
    if (isChinese())title = "请登录";	
	poplp = new Popup({contentType:1,isSupportDraging:true,isReloadOnClose:false,width:460,height:200});
	poplp.setContents({'title':'Please Login in','contentUrl':'../confirmlogin.aspx' + desurl});
	poplp.build().show();
}
var skypop=null;
function showSkyBox(msg)
{
    closePopup();
    var title = 'Information';
    if (isChinese())title = "信息";	
	poplp = new Popup({contentType:1,isSupportDraging:true,isReloadOnClose:false,width:460,height:200});
	poplp.setContents({'title':'Information','contentUrl':'../messagepopup.aspx?msg=' + msg});
	poplp.build().show();
}
function closePopup()
{
	if(poplp!=null) poplp.close();
	if(popgp!=null) popgp.close();
	if(skypop!=null) skypop.close();
}
function setAwardPoints(numCtrId, pointsCtrId, points)
{
    var numCtr = getElement(numCtrId);
    var pointsCtr = getElement(pointsCtrId);
    if (numCtr.value == "" || isNaN(numCtr.value))
    {
        numCtr.value = "";
        pointsCtr.value = "";
        return 
    }
    else
    {
        pointsCtr.value = parseFloat(numCtr.value) * parseFloat(points) + "";
    }
}

function setSeat(evt, tabletype, seatnum)
{
    evt = (evt) ? evt : window.event;
    var tar = (evt.target) ? evt.target : evt.srcElement;
    var ctr = getElement("hf" + tabletype);
    if (ctr.value == "")
    {
        ctr.value = "," + seatnum;
    }
    else
    {
        ctr.value = ctr.value + "," + seatnum;        
    }
    if (tar.className.indexOf("sel") == 0)
    {
        tar.className = tar.className.substring(3);
        var wd = "," + seatnum;
        var reg = new RegExp("("+wd+")","g");
        ctr.value = ctr.value.replace(reg, "");
    }
    else
    {
        tar.className = "sel" + tar.className;
    }
}
function addReservation(tabletype, btnId)
{
    var ctr = getElement("hf" + tabletype);
    var tables = ctr.value;
    btnId = btnId.replace(/\_/g, "$");
    if (tables == "") {alert("Please select seat!");return;}
    if (typeof(__doPostBack) === "function")__doPostBack(btnId, tables + "," + tabletype);
}
/*xml Http*/
var xmlHttp = null;
function createXMLHttpRequest()
{
    if (window.ActiveXObject)
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest)
    {
        xmlHttp = new XMLHttpRequest();
    }
}
/*end xml Http*/
function setMiles(evt, totalPoints, partnerId, pointsCtrId, milesCtrId)
{
    evt = (evt) ? evt : window.event;
    var ctr = (evt.target) ? evt.target : evt.srcElement;
    var points = 0;
    var pointsCtr = getElement(pointsCtrId);
    var milesCtr = getElement(milesCtrId);
    if (isNaN(pointsCtr.value) || trim(pointsCtr.value) == "")
	{
	    milesCtr.value = "";
		return;
	}
    if (parseFloat(totalPoints) < parseFloat(trim(pointsCtr.value)))
    {
        pointsCtr.value = totalPoints + "";
    }
    
    createXMLHttpRequest();
    var url = "/ashx/commonhandler.ashx?t=milespartner&n=points&v=" + partnerId + "&ts=" + new Date().getTime();    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            if (xmlHttp.status == 200)
            {  
                points = parseFloat(xmlHttp.responseText);
                if (ctr == pointsCtr)
                {
                    milesCtr.value = FormatNumber(parseFloat(pointsCtr.value) / points, 2) + "";
                }
                else
                {
                    if (milesCtr.value == "") return;
                    var rt = parseFloat(milesCtr.value)
                    var tp = points * parseFloat(milesCtr.value);
                    if (parseFloat(totalPoints) < parseFloat(trim(tp)))
                    {
                        pointsCtr.value = totalPoints + ""
                        milesCtr.value = FormatNumber(parseFloat(pointsCtr.value) / points, 2) + "";                        
                        return;
                    }
                }
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);      
}
function judgeUserNameExists(userNameId)
{
	if (!checkUserName(userNameId)) return;
    var userName = getElement(userNameId).value;
    createXMLHttpRequest();
    var url = "/ashx/commonhandler.ashx?t=j&n=username&v="+ userName  +"&ts=" + new Date().getTime();    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            if (xmlHttp.status == 200)
            {  
                ///showMessageBox(xmlHttp.responseText);
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);   
}

function judgeEmailExists(emailId)
{
	if (!checkEmail(emailId)) return;
    var email = getElement(emailId).value;
    createXMLHttpRequest();
    var url = "/ashx/commonhandler.ashx?t=j&n=email&v="+ email  +"&ts=" + new Date().getTime();    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            if (xmlHttp.status == 200)
            {  
                ///showMessageBox(xmlHttp.responseText);
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);      
}

function ValidateCodePic(ctrId)
{
    var ctr = getElement(ctrId);
    if (ctr != null)
    {
        ctr.src = "CreateValidateCode.ashx?ts=" + new Date().getTime();   
    }
}

function fnTrapKD(btnID, event)
{
    var button = getElement(btnID); // only recent browsers
    if (document.all) // IE
    {
        if (event.keyCode == 13)
        {
            event.returnValue = false;
            event.cancel = true;
            button.click();
        }
    }
    else if (document.getElementById)
    {
        if (event.which == 13) 
        {
            event.returnValue = false;
            event.cancel = true;
            button.focus();
            button.click();
        }
    }
}

// UpdateEditorClass use to sovle the updatepanel problem
function UpdateEditorClass()
{
    this.UpdateEditorFormValue = function(val)
    {       
        for ( i = 0; i < parent.frames.length; ++i )
        {
            if ( parent.frames[i].FCK )
            {    
                parent.frames[i].FCK.UpdateLinkedField();
            }
        }
    }
}
function uploadFCKDateNeedLoginIn()
{
    if(Validate())
    {
        if(typeof(MyFCKObject) != "undefined")
        {
            MyFCKObject.UpdateEditorFormValue();
        }
        else
        {
            return false;
        }
    }else
    {
        return false;
    }
}
// instantiate the class
var MyFCKObject = new UpdateEditorClass();

//tooltip
var ns4 = document.layers;
var ns6 = getElement && !document.all;
var ie4 = document.all;
var tooltipdiv = null;
function initTooltipdiv()
{
  if(ns4||ns6||ie4)
  {
    if(ns4) tooltipdiv = document.tippopup;
    else if(ns6) tooltipdiv = getElement("tippopup");
    else if(ie4) tooltipdiv = document.all.tippopup;
    if(ns4) document.captureEvents(Event.MOUSEMOVE);
    else
    {
      tooltipdiv.style.visibility = "visible";
      tooltipdiv.style.display = "none";
	  tooltipdiv.innerHTML = "";
    }
  }
}

//获得元素位置
function find_position(objOrId) {
    var obj = getElementRef(objOrId);
	var curleft = curtop = 0;
	curleft = obj.offsetLeft;
	curtop = obj.offsetTop;
	if (obj.offsetParent){
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}

function on_mouse_over(el)
{
	if (tooltipdiv == null || el.title == "undefined" || el.title == "") return;	
	el.onmousemove = moveToMouseLoc;	
	tooltipdiv.innerHTML = el.title;
	el.title = "";
}

function on_mouse_out(el)
{
	if (tooltipdiv == null || tooltipdiv.innerHTML == "")return;
	tooltipdiv.style.display = "none";
	el.title = tooltipdiv.innerHTML;
}

function moveToMouseLoc(e)
{
	if (tooltipdiv == null)inittooltipdiv();
  	if(ns4||ns6)
  	{
    	x = e.pageX;
    	y = e.pageY;
  	}
  	else
  	{
		x = event.x + document.documentElement.scrollLeft;
    	y = event.y + document.documentElement.scrollTop;
  	}
  	tooltipdiv.style.display = "block";
  	//判断标签是否超出右边界
  	var tooltipw = 345;
  	var tooltiph = tooltipdiv.clientHeight;
  	var iw = parseInt(window.document.body.clientWidth);
  	var ih = parseInt(window.document.body.clientHeight);
  	if (iw < x + tooltipw)
  	{
  	    x = x - tooltipw + 24;
  	}
  	
  	tooltipdiv.style.left = x + 0 + "px";
  	tooltipdiv.style.top = y + 20 + "px";
    stopPropagation(e);
  	return true;
}