﻿String.prototype.trim=function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim=function(){
    return this.replace(/(^\s*)/g,"");
}
String.prototype.rtrim=function(){
    return this.replace(/(\s*$)/g,"");
}
String.prototype.isDate = function(){
   var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
   if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
   return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
String.prototype.floorCU=function(arg2){
	var t1=0,t2=0,r1,r2;
	try{t1=this.toString().split(".")[1].length;}catch(e){}
	try{t2=arg2.toString().split(".")[1].length;}catch(e){}
	with(Math){
		r1=Number(this.toString().replace(".",""));
		r2=Number(arg2.toString().replace(".",""));
		return (r1/r2)*pow(10,t2-t1);
	}
}
String.prototype.floorCN=function(arg2){
	var m=0,s1=this.toString(),s2=arg2.toString();
	try{m+=s1.split(".")[1].length;}catch(e){}
	try{m+=s2.split(".")[1].length;}catch(e){}
	return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}
String.prototype.floorJA=function(arg2){
	var r1,r2,m;
	try{r1=this.toString().split(".")[1].length;}catch(e){r1=0;}
	try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;}
	m=Math.pow(10,Math.max(r1,r2));
	return (this*m+arg2*m)/m;
}
String.prototype.floorJN=function(arg2){
	var r1,r2,m;
	try{r1=this.toString().split(".")[1].length;}catch(e){r1=0;}
	try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;}
	m=Math.pow(10,Math.max(r1,r2));
	return (this*m-arg2*m)/m;
}

var PathStr="./";
function Event(){
	if(document.all){return window.event;}
	func=getEvent.caller;
	while(func!=null){
		var arg0=func.arguments[0];
		if(arg0){
			if((arg0.constructor==Event || arg0.constructor==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
				return arg0;
			}
		}
		func=func.caller;
	}
	return null;
}
function $(objID){
	try{
		return document.getElementById(objID) || document.documentElement.getElementById(objID) || eval(objID);	
	}catch(e){}
}
function openWindow(){
	var Url=arguments[0] || "";
	var Name=arguments[1] || "";
	var Width=arguments[2] || "";
	var Height=arguments[3] || "";
	var Top=arguments[4] || 200;
	var Left=arguments[5] || 250;
	var toolBar=arguments[6] || "no";
	var scrollBar=arguments[7] || "auto";
	var resizAble=arguments[8] || "yes";
	var RtnValue=arguments[9] || false;
	//alert(scrollBar);
	window.open(Url,Name,"toolbar="+toolBar+",location=no,directories=no,status=no,menubar=no,scrollbars="+scrollBar+",resizable="+resizAble+",width="+Width+",height="+Height+",left="+Left+",top="+Top);	
	return false;
	//return RtnValue;
}
function justNumKey(e){
	if(!document.all){var keyCode=e.which}else{var keyCode=event.keyCode;}
	if((keyCode>47 && keyCode<58) || keyCode==8 || keyCode==13 || keyCode==0){
		return true;	
	}else{return false;}
}
function isNormal(ExStr){
	if(ExStr!=""){
		if(/^[A-Za-z0-9]+$/.test(ExStr)){
			return true;
		}else{
			return false;	
		}
	}
}
function isNum(vObj,e){
	if(vObj.value!=""){
		if(/\d+/.test(vObj.value)){
			return true;
		}else{
			vObj.value="";
			alert("Please fill this with number!");
			return false;	
		}
	}
}
function isEmail(ExStr){
	if(ExStr==null) return (false);
	var supported = 0;
	if(window.RegExp){
		var tempStr="a";
		var tempReg=new RegExp(tempStr);
		if(tempReg.test(tempStr)) supported=1;
	}
	if(!supported) return (Expression.indexOf(".") > 2) && (Expression.indexOf("@")>0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(ExStr) && r2.test(ExStr));
}
function tellmyfriend(pathStr,couponID){
	if(!pathStr){pathStr="";}
	var QStr=(!!couponID && couponID!="")?"?m="+couponID:"";
	window.open(pathStr+"TellMyFriend.php"+QStr, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=yes,width=365,height=314,Left=250,top=200");
	return false;
}
function openTerm(Url,Name,pathStr){
	if(!pathStr){pathStr="";}
	window.open(Url, Name, "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=yes,width=500,height=600,Left=250,top=200");
	return false;
}
function ClassAChange(dftValue,dftValue1){
	var a=$("ClassA");
	for(var i=0;i<ClassAList[0];i++){
		var tmp=ClassAList[i+1].split(String.fromCharCode(27));
		a.options.add(new Option(tmp[1],tmp[0]));
		if(!!dftValue){
			if(dftValue==tmp[0]){
				a.options[a.options.length-1].selected=true;
				ClassBChange(dftValue,dftValue1);
			}
		}
	}
	if(!!a){a.onchange=function(){ClassBChange(a.value,dftValue1);}}
}
function ClassBChange(ClassAValue,dftValue){
	var e=$("ClassB");
	e.options.length=1;
	for(var i=0;i<ClassBList[0];i++){
		var tmp=ClassBList[i+1].split(String.fromCharCode(27));
		if(tmp[0]==ClassAValue){			
			var O=e.options.add(new Option(tmp[2],tmp[1]));
			if(!!dftValue){
				if(dftValue==tmp[1]){
					e.options[e.options.length-1].selected=true;
				}
			}
		}
	}	
}
function StateChange(dftValue,dftValue1){
	try{
		var s=$("State") || $("state") || $("fState");
		var z=$("Zipcode") || $("zipcode") || $("zip") || $("ZipCode") || $("fZip");
		var c=$("City") || $("city") || $("fCity");
		for(var i=0;i<StateArr[0];i++){
			var O=s.options.add(new Option(StateArr[i+1],StateArr[i+1]));
			if(!!dftValue){
				if(dftValue.toUpperCase()==StateArr[i+1].toUpperCase()){
					s.options[s.options.length-1].selected=true;
					CityChange(dftValue,dftValue1);
				}
			}
		}
		
		if(!s){}else{
			s.onchange=function(){
				CityChange(s.value,dftValue1);
				if(!!z){z.value="";}
				try{mmSaveStateValue(s.value.trim());}catch(e){}
				try{var LZ=$("LZipcode");LZ.options.length=1;}catch(e){}
			}
		}
		if(!c){}else{
			c.onchange=function(){
				if(!!s && !!c && !!z){AjaxCheckZip(s.value.trim(),c.value.trim(),z.value.trim());}
				try{mmSaveCityValue(c.value.trim());}catch(e){}
				if(!!$("LZipcode") && !!s && !!c){
					//try{
						GetZipcodeList(s.value.trim(),this.value.trim());
					//}catch(e){}
				}
			}
		}
		if(!z){}else{
			z.onchange=function(){
				try{AjaxCheckZip(s.value.trim(),c.value.trim(),z.value.trim());}catch(e){}
			}
			z.onkeyup=function(e){return isNum(this,e);}
			z.onkeypress=function(e){return justNumKey(e);}
		}
	}catch(e){e.message();}
}
function CityChange(StateValue,dftValue){
	var e=$("City") || $("city") || $("fCity");
	e.options.length=1;
	for(var i=0;i<CityArr[0];i++){
		var tmp=CityArr[i+1].split(String.fromCharCode(27));
		if(tmp[0].toUpperCase()==StateValue.toUpperCase()){			
			var O=e.options.add(new Option(tmp[1],tmp[1]));
			if(!!dftValue){
				if(dftValue.toUpperCase()==tmp[1].toUpperCase()){
					e.options[e.options.length-1].selected=true;
				}
			}
		}
	}
}
function GetZipcodeList(vState,vCity){
	var LZ=$("LZipcode");
	var Ajax=new Ryo_Ajax();
	LZ.options.length=0;
	LZ.options.add(new Option("Loading...",""));
	LZ.disabled=true;
	Ajax.Send(PathStr+"Plugin/Api/Api.DataCheck.php","SmtFlag=GetZipCodeList&State="+escape(vState)+"&City="+escape(vCity),GetZipcodeListEx);
}
function GetZipcodeListEx(RtnStr,AjaxObj){
	var LZ=$("LZipcode");
	LZ.options.length=0;
	LZ.options.add(new Option("Select a zipcode",""));
	LZ.disabled=false;
	if(RtnStr!="0x1"){
		var tmpArr=RtnStr.split(String.fromCharCode(27));
		for(var i=0;i<tmpArr.length-1;i++){
			LZ.options.add(new Option(tmpArr[i],tmpArr[i]));
		}
	}
}
function AjaxCheckZip(vState,vCity,vZip){
	if(vState!="" && vCity!="" && vZip!=""){
		var z=$("Zipcode") || $("zipcode") || $("zip") || $("ZipCode") || $("fZip");
		var Ajax=new Ryo_Ajax();
		z.disabled=true;
		Ajax.Send(PathStr+"Plugin/Api/Api.DataCheck.php","SmtFlag=CheckZipCode&State="+escape(vState)+"&City="+escape(vCity)+"&Zipcode="+escape(vZip),AjaxCheckZipEx);
	}else{return false;}
}
function AjaxCheckZipEx(RtnStr,AjaxObj){
	var z=$("Zipcode") || $("zipcode") || $("zip") || $("ZipCode") || $("fZip");
	if(RtnStr=="0x0"){
		try{
			var t=$("tel1");
			t.focus();
		}catch(e){}	
	}else if(RtnStr=="0x1"){
		alert("Sorry this zip code does not match your address, please re-enter correct zip code for your address!");
		z.value="";
		try{z.focus();}catch(e){}
	}else{
		alert(RtnStr);
	}
	z.disabled=false;
}
function resizeFrame(iframename) {
	var pTar = $(iframename) || eval("window."+iframename);
	var dm=pTar.contentDocument;
	pTar.style.display="block"
	if(dm && dm.body.offsetHeight){
		pTar.height=dm.body.offsetHeight+50;
	}else if(pTar.document && pTar.document.body.scrollHeight){
		try{
			pTar.height = pTar.contentWindow.document.documentElement.scrollHeight+50;
		}catch(e){}
	}
}
window.onload=function(){
	initAjaxMessagePostion();
	try{
		var z=$("Zipcode") || $("zipcode") || $("zip") || $("ZipCode") || $("fZip");
		if(!z){}else{z.disabled=false;}
	}catch(e){}
	try{initFireFox();}catch(e){e.message}
	try{OnLoad();}catch(e){}
}
window.onresize=function(){
	initAjaxMessagePostion();
	try{OnResize();}catch(e){}
}
function initAjaxMessagePostion(){
	try{
		var e=document.getElementById("AjaxMessage") || eval("AjaxMessage");
		if(!!e){
			e.style.left=(((document.documentElement||document.body).clientWidth)-e.scrollWidth)/2+'px';
			e.style.top=(((document.documentElement||document.body).clientHeight)-e.scrollHeight)/2+(document.documentElement||document.body).scrollTop+'px';
		}
	}catch(e){}
}
function ProcessShow(Msg,ShowHide){
	var Display="none";
	if(ShowHide!=""){Display=ShowHide;}
	try{
		var e=$("AjaxMessage");
		e.innerHTML=Msg;
		e.style.display=Display;
		initAjaxMessagePostion();
	}catch(e){}
}
function initFireFox(){
	if(window.HTMLElement){
		HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
			var r=this.ownerDocument.createRange();
			r.setStartBefore(this);
			var df=r.createContextualFragment(sHTML);
			this.parentNode.replaceChild(df,this);
			return sHTML;
			});
	
		HTMLElement.prototype.__defineGetter__("outerHTML",function(){
		 var attr;
			var attrs=this.attributes;
			var str="<"+this.tagName.toLowerCase();
			for(var i=0;i<attrs.length;i++){
				attr=attrs[i];
				if(attr.specified)
					str+=" "+attr.name+'="'+attr.value+'"';
				}
			if(!this.canHaveChildren)
				return str+">";
			return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
			});
			
	 HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
	  switch(this.tagName.toLowerCase()){
				case "area":
				case "base":
			 case "basefont":
				case "col":
				case "frame":
				case "hr":
				case "img":
				case "br":
				case "input":
				case "isindex":
				case "link":
				case "meta":
				case "param":
				return false;
			}
			return true;
	
		 });
	}
}
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";} 
}