var sMissingErrMsg = "";
var sInvalidErrMsg = "";
var gsPopulateDropDown = "";
var sCartProductName = "";

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function verify_order(sURL, oid, sid, itid){
    $("#verify_order_"+itid).html("Loading...");
    $.post(sURL, {oid:oid,sid:sid, itid:itid}, function(data){
        $("#verify_order_"+itid).html(data);
    });
}

function validateDetail(sURL, pid, pName, rURL){
	sErr = "";
	var i = document.getElementById("IMEI");
	var s = document.getElementById("SERIAL_NUMBER");
	var k = document.getElementById("KBH");
    var p = document.getElementById("PRD");
	var n = document.getElementById("NETWORK");
	var m = document.getElementById("MODEL");
	var c = document.getElementById("UNLOCK_COUNTRY");
	var cm = document.getElementById("COMMENTS");
    
                
	if(i){
	    im = i.value;	   
		if(i.value==""){
			sErr = sErr + "\tIMEI\n";	
		}
	}else{
	   im = "";
	}


	if(s){
	    sn = s.value;	   
		if(s.value==""){
			sErr = sErr + "\tSerial Number\n";	
		}
	}else{
	   sn = "";
	}

	if(k){
	    kb = k.value;	   
		if(k.value==""){
			sErr = sErr + "\tKBH\n";	
		}
	}else{
	   kb = "";
	}
    
    if(p){
	    prd = p.value;	   
		if(p.value==""){
			sErr = sErr + "\tPRD\n";	
		}
	}else{
	   prd = "";
	}

	if(n){
	    nt = n.value;	   
		if(n.value==""){
			sErr = sErr + "\tNetwork\n";	
		}
	}else{
	   nt = "";
	}

	if(m){
	    md = m.value;
		if(m.value==""){
			sErr = sErr + "\tModel\n";	
		}
	}else{
	   md = "";
	}

	if(c){
	    cn = c.value;
		if(c.value==""){
			sErr = sErr + "\tModel\n";	
		}
	}else{
	   cn = "";
	}
    if(cm){
        cmV = cm.value
		if(cmV==""){
			sErr = sErr + "\tComments\n";	
		}
    }else{
        cmV = "";
    }
    sInvalid = "";
    if(i){
        if(i.value!=""){
            im_arr = i.value.split("\n");
            for(n=0;n<im_arr.length;n++){
                if(im_arr[n]!=""){
                    if(im_arr[n].trim().length!=15){
                        sInvalid = "\tIMEI\n";
                    }
                }
            }
        }    
    }
	if(sErr!=""){
		alert("Following information is missing: \n " +sErr);
        return false;
    }
        
	if(sInvalid!=""){
        alert("IMEI(s) are invalid, each IMEI should be of 15 digits");
        return false;
    }
        

	var id = $('#sticky_note');
	//Get the screen height and width
	var maskHeight = $(document).height();
	var maskWidth = $(window).width();

	//Set heigth and width to mask to fill up the whole screen
	$('#mask').css({'width':maskWidth,'height':maskHeight});
	
	//transition effect		
	$('#mask').fadeIn(1000);	
	$('#mask').fadeTo("slow",0.8);	
    
    qty = $("#product_qty_"+pid).val();
    if(fSafeNum(qty)==0){
       qty = 1; 
    }
    
	//Get the window height and width
	var winH = $(window).height();
	var winW = $(window).width();
	
	var scrollTop = $(window).scrollTop(); 

          
	//Set the popup window to center
	$(id).css('top',  (scrollTop + (winH/2)) -$(id).height()/2);
	$(id).css('left', winW/2-$(id).width()/2);

	//transition effect
	$(id).fadeIn(2000); 
	id.html("<br/><b>" +  pName + "</b> Adding product to cart<br/>Please wait...");    
    $.post(sURL+"/"+qty, {im:im,sn:sn,kb:kb,nt:nt,prd:prd,md:md,cn:cn,cm:cmV}, function(data){
        if(data.indexOf("stock")>-1){
            id.html("<br/>" + data);
        }else{     
            id.html("<br/><b>" +  pName + "</b> Added Successfully");        
        	window.setTimeout(hide_popup,3000);
            document.getElementById("cart_items").innerHTML = data;
            if(rURL!=""){
                $.fancybox.close();
                window.location.href = rURL;
            }else{
                $.fancybox.close();
            }
        }        
    });
    
    return false;            
}

function show_news_desc(no){
	var e = document.getElementById("news_desc_"+no);
	if(e){
		for(n=1;n<=1000;n++){
			var m = document.getElementById("news_desc_"+n);
			if(m){
				m.style.display='none';
			}else{
				break;
			}
		}
		e.style.display='block';
	}
}
function getShipping(weight, base_url){
	var c = document.getElementById("country").value;
	var s = document.getElementById("shipping_service").value;
	sURL = base_url + "/ajax_request/shipping_amount/" + c + "/" + s + "/" + weight;
	sendAjaxRequest(sURL, 'shipping_value');
}
function getShipping2(weight, base_url){
	var c = document.getElementById("est_country").value;
	var s = document.getElementById("est_shipping_service").value;
	sURL = base_url + "/ajax_request/shipping_amount/" + c + "/" + s + "/" + weight;
	sendAjaxRequest(sURL, 'est_shipping_value');
}
var gsProductName = "";
function addtocart(sURL, sName){
    gsProductName=sName;
	var q = document.getElementById("quantity");
	if(q){
		qty = q.value;
	}else{
		qty = 1;
	}
    var PId = 0;
    var PIDArr = new Array();
    PIDArr = sURL.split("/");
    PId = parseInt(PIDArr[PIDArr.length - 1]);
    if(PId > 0)
    {        
        qty = parseInt($("#product_qty_" + PId).val());
    }
	sCartProductName = sName;
	xmlHTTP=GetXmlHttpObject();
	if (xmlHTTP==null){
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	var id = $('#sticky_note');
	//Get the screen height and width
	var maskHeight = $(document).height();
	var maskWidth = $(window).width();

	//Set heigth and width to mask to fill up the whole screen
	$('#mask').css({'width':maskWidth,'height':maskHeight});
	
	//transition effect		
	$('#mask').fadeIn(1000);	
	$('#mask').fadeTo("slow",0.8);	

	//Get the window height and width
	var winH = $(window).height();
	var winW = $(window).width();
	
	var scrollTop = $(window).scrollTop(); 

          
	//Set the popup window to center
	$(id).css('top',  (scrollTop + (winH/2)) -$(id).height()/2);
	$(id).css('left', winW/2-$(id).width()/2);

	//transition effect
	
	
	var rnd = Math.floor(Math.random()*9999999);
	sURL = sURL + "/" + qty + "/" + rnd ;
	xmlHTTP.open("GET",sURL,true);
	xmlHTTP.onreadystatechange=updatecartItems;
	xmlHTTP.send(null);
}
function hide_popup(){
	$('#mask').hide();
	$('.window').hide();
}
function updatecartItems(){
    if (xmlHTTP.readyState==4){
        var sResponseText = xmlHTTP.responseText;
        if(sResponseText.indexOf("stock")>-1){
            var id = $('#sticky_note');
        	$(id).fadeIn(2000); 
        	id.html("<br/><b>" +  sResponseText);
            window.setTimeout(hide_popup,5000);
        }else{
            document.getElementById("cart_items").innerHTML= sResponseText;
            var id = $('#sticky_note');
        	$(id).fadeIn(2000); 
        	id.html("<br/><b>" +  gsProductName + "</b> Added Successfully");
            window.setTimeout(hide_popup,3000);
        }
    }
}
var gsDiv = "";
function sendAjaxRequest(sURL, sDiv){
	gsDiv = sDiv;
	document.getElementById(sDiv).innerHTML = "<br/><br/><img src='/imgs/loading.gif'><br/><br/>";
	xmlHTTP=GetXmlHttpObject();
	if (xmlHTTP==null){
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	ref= Math.floor(Math.random()*99999)
	sURL=sURL+"/"+ref
	xmlHTTP.open("GET",sURL,true);
	xmlHTTP.onreadystatechange=updateAjaxRequest;
	xmlHTTP.send(null);
	
}
function updateAjaxRequest(){
	if (xmlHTTP.readyState==4){
        var sResponseText = xmlHTTP.responseText;
        document.getElementById(gsDiv).innerHTML = sResponseText;
    }
}
function populateFields(sURL){
	xmlHTTP=GetXmlHttpObject();
	if (xmlHTTP==null){
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	xmlHTTP.open("GET",sURL,true);
	xmlHTTP.onreadystatechange=updatePopulateFields;
	xmlHTTP.send(null);
}

function updatePopulateFields(){
	if (xmlHTTP.readyState==4){
        var sResponseText = xmlHTTP.responseText;
        sResponseTextArr = sResponseText.split("~~~");
        for(n=0;n<sResponseTextArr.length;n++){
            sResponseTextArr2 = sResponseTextArr[n].split("===");
            if(sResponseTextArr2.length==2){
                if(document.getElementById(sResponseTextArr2[0])){
                    document.getElementById(sResponseTextArr2[0]).value = sResponseTextArr2[1];
                }
            }
        }
    }
}


function populateDropDown(sURL, sListID){
    gsPopulateDropDown = sListID;
	var e = document.getElementById(gsPopulateDropDown);
	if(e){
		e.length = 0;
       try
       {
    	   e.add(new Option("Loading...", ""), null);
       }
       catch(ex)
       {
    	   e.add(new Option("Loading...", ""));
       }
        
		xmlHTTP=GetXmlHttpObject();
		if (xmlHTTP==null){
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
		xmlHTTP.open("GET",sURL,true);
		xmlHTTP.onreadystatechange=updatePopulateDropDown;
		xmlHTTP.send(null);
	}
}
function updatePopulateDropDown(){
	if (xmlHTTP.readyState==4){
		var e = document.getElementById(gsPopulateDropDown);
		if(e){
            e.length = 0;
            var sResponseText = xmlHTTP.responseText;                       
            if(sResponseText == "")
            {
                e.add(new Option("Free Shipping", ""), null);
            }
            else
            {
                try
                {
             	   e.add(new Option("Select One", ""), null);
                }
                catch(ex)
                {
             	   e.add(new Option("Select One", ""));
                }                                
                sResponseTextArr = sResponseText.split("\n");
                for(n=0;n<sResponseTextArr.length;n++)
                {
                   sResponseTextArr2 = sResponseTextArr[n].split(":");
                   if(sResponseTextArr2.length>1){
                       try
                       {
                    	   e.add(new Option(sResponseTextArr2[1], sResponseTextArr2[0]), null);
                       }
                       catch(ex)
                       {
                    	   e.add(new Option(sResponseTextArr2[1], sResponseTextArr2[0]));
                       }
                   }
                }
            }
            
        }
   }
}
function GetXmlHttpObject(){
	if (window.XMLHttpRequest){
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  return new XMLHttpRequest();
	}
	if (window.ActiveXObject){
	  // code for IE6, IE5
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function validatePage(objForm){
	sMissingErrMsg = "";
	sInvalidErrMsg = "";
	var sErrMsg = ""
	bSetFocus = false;
	validateElements(objForm,"input");
	validateElements(objForm,"select");
	validateElements(objForm,"textarea");
	if(sMissingErrMsg!=""){
		sErrMsg = sErrMsg + "Following information(s) is missing: \n" + sMissingErrMsg;
	}
	if(sInvalidErrMsg!=""){
		sErrMsg = sErrMsg + "Following information(s) is invalid: \n" + sInvalidErrMsg;
	}
	if(sErrMsg!==""){
		sErrMsg = replaceAll(sErrMsg, "_", " ")
		alert(sErrMsg);
		return false;
	}
	return true;
}


function replaceAll(sMainStr, sReplaceWhat, sReplaceWith){
	while(sMainStr.indexOf(sReplaceWhat)>-1){
		sMainStr = sMainStr.replace(sReplaceWhat,sReplaceWith);
	}
	return sMainStr;
}

function validateElements(objForm,sElementName){	
	var arrElements = objForm.getElementsByTagName(sElementName);
	for(n=0;n<arrElements.length;n++){
		if(arrElements[n].className.indexOf("required")>-1 && arrElements[n].value==""){
			sMissingErrMsg = sMissingErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Num")>-1 && arrElements[n].value!="" && fSafeNum(arrElements[n].value)==0 && isNaN(arrElements[n].value)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Email")>-1 && arrElements[n].value!="" && (arrElements[n].value.indexOf("@")==-1 ||arrElements[n].value.indexOf(".")==-1)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("MobilePhone")>-1 && arrElements[n].value!=""){
			var sPhoneNumber = arrElements[n].value;
			sPhoneNumber = replaceAll(sPhoneNumber , ",", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "+", "")
			sPhoneNumber = replaceAll(sPhoneNumber , " ", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "(", "")
			sPhoneNumber = replaceAll(sPhoneNumber , ")", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "-", "")
			if(isNaN(sPhoneNumber) || sPhoneNumber.length<10){
				sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
				attachInputEvents(arrElements[n]);
			}
		}
		if(arrElements[n].className.indexOf("HomePhone")>-1 && arrElements[n].value!=""){
			var sPhoneNumber = arrElements[n].value;
			sPhoneNumber = replaceAll(sPhoneNumber , ",", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "+", "")
			sPhoneNumber = replaceAll(sPhoneNumber , " ", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "(", "")
			sPhoneNumber = replaceAll(sPhoneNumber , ")", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "-", "")
			if(isNaN(sPhoneNumber) || sPhoneNumber.length<6){
				sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
				attachInputEvents(arrElements[n]);
			}
		}
		if((sMissingErrMsg!="" || sInvalidErrMsg!="") && !bSetFocus){
			arrElements[n].focus();
			bSetFocus = true;
		}
		
	}
}
function fSafeNum(str){
	str = str + "";
	str = replaceAll(str,",","");
	if(isNaN(str) || str==""){
		return 0;
	} else {
		return parseFloat(str);
	}
}
function attachInputEvents(objForm){
	attachInputEventsElements(objForm,"input");
	attachInputEventsElements(objForm,"select");
	attachInputEventsElements(objForm,"textarea");
}
function validInput(evt){
	sElement = evt["srcElement"]["obj"];
	if(sElement){
		if(sElement.value!=""){
			sElement.className = sElement.className.replace("invalidInput","");
		}
	}
}
function attachInputEventsElements(objForm,sTagNames){
	var arrElements = objForm.getElementsByTagName(sTagNames);
	for(n=0;n<arrElements.length;n++){
		if(arrElements[n].attachEvent){
			if(sTagNames=="select"){
				arrElements[n].attachEvent("onchange",validInput);
			}else{
    			arrElements[n].attachEvent("onkeyup",validInput);
    			arrElements[n].obj = arrElements[n];
            }
		}else{
			if(sTagNames=="select"){
				arrElements[n].addEventListener("onchange",function (){
					if(this.value!=""){
						this.className = this.className.replace("invalidInput","");
					}
				},false);
			}else{
    			arrElements[n].addEventListener("keyup",function (){
    				if(this.value!=""){
    					this.className = this.className.replace("invalidInput","");
    				}
    			},false);
            }
		}
	}
}
function toggleCheckAll(sID, bChecked){
    for(n=0;n<=999999;n++){
        var e = document.getElementById(sID+"_"+n);
        if(e){
            e.checked = bChecked;
        }else if(n>0){
            break;
        }
    }
}
function forceNumber(eventObj, obj)
{
	var keyCode

	if (document.all){
		keyCode=eventObj.keyCode
	}
	else{
		keyCode=eventObj.which
	}
	var str=obj.value
	if(keyCode==8 || keyCode==0 || keyCode==190 || keyCode==37 || keyCode==39 || keyCode==16 || keyCode==9 || keyCode==46 || keyCode==35 || keyCode==36){
		return true;
	}
	if(keyCode>95 && keyCode <106) { 
		return true;
	}
	if((keyCode<48 || keyCode >57)  ) { // Allow only integers and decimal points &&   (keyCode != 46)
		return false;
	}
	return true;
}
