//Ajax Drop Down Request Start Here

function sendDropDownRequest(sURL, sParam, sDropDown) {
	var sURL = sURL;
	var sParam = sParam;
	if (sParam!='') {
		sURL = sURL + '?' + sParam;
	}
	populateDropDown(sDropDown, sURL);
}

var gsDropDownID = "";
function populateDropDown(sDropDownID, sURL) {
	gsDropDownID = sDropDownID;
	var e = document.getElementById(sDropDownID)
	if(e)
	{
		xmlhttp=GetXmlHttpObject();
		if (xmlhttp==null)
		{
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
		xmlhttp.onreadystatechange=stateChanged;
		xmlhttp.open("GET",sURL,true);
		xmlhttp.send(null);
	}		
}

function stateChanged() {
	if (xmlhttp.readyState==4)
	{
	   var e = document.getElementById(gsDropDownID)
	   if(e)
	   {
		   e.length = 0;
		   sResponseText = xmlhttp.responseText;
		   
		   sResponseTextArr = sResponseText.split("~");
		   try {
			   e.add(new Option('Please Select', ''), null);
			} catch(ex) {
			   e.add(new Option('Please Select', ''));
			}
			
		   for(n=0;n<sResponseTextArr.length;n++)
		   {
			   sResponseTextArr2 = sResponseTextArr[n].split("==");
			   try
			   {
				   e.add(new Option(sResponseTextArr2[0], sResponseTextArr2[1]), null);
			   }
			   catch(ex)
			   {
				   e.add(new Option(sResponseTextArr2[0], sResponseTextArr2[1]));
			   }
		   }
		}			  
	}
}

//Ajax Drop Down Request End Here

//Ajax Page End Here

function SendAjaxValues(sRequestFile, sParams) {
	var sURL = sRequestFile
	sParams  = sParams + "&ref="+Math.floor(Math.random()*10001)
	sURL = sURL + "?" + sParams;
	
	xmlHTTP=GetXmlHttpObject();
	if (xmlHTTP==null){
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	
	nPOS = sURL.indexOf("?");
	if(nPOS>-1){
		sParams = sURL.substring(nPOS+1);
		sURL = sURL.substring(0,nPOS);
	}
	xmlHTTP.open("POST",sURL,true);
	xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHTTP.setRequestHeader("Content-length", sParams.length);
	xmlHTTP.setRequestHeader("Connection", "close");
	//xmlHTTP.onreadystatechange=UpdateAjaxRequest;
	xmlHTTP.send(sParams);
}

function SendAjaxRequest(sRequestFile, sParams, sDivID) {
	var sURL = sRequestFile
	sParams  = sParams + "&ref="+Math.floor(Math.random()*10001)
	sURL = sURL + "?" + sParams;
	SendAjaxRequestByURL(sURL, sDivID)
}

function SendAjaxReq(sRequestFile, objForm, sDivID)
{
	var sURL = sRequestFile
	sParams = getFormElements(objForm);
	sParams  = sParams + "&ref="+Math.floor(Math.random()*10001)
	sURL = sURL + "?" + sParams;
	SendAjaxRequestByURL(sURL, sDivID)
}

gsDivID = "";
function SendAjaxRequestByURL(sURL, sDivID)
{
	gsDivID = sDivID;
	var e = document.getElementById(gsDivID);
	if(e){
		e.style.display='';
		e.innerHTML = "<center><img src=\"imgs/loading.gif\" border=\"0\"></center>";
		xmlHTTP=GetXmlHttpObject();
		if (xmlHTTP==null){
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
		nPOS = sURL.indexOf("?");
		if(nPOS>-1){
			sParams = sURL.substring(nPOS+1);
			sURL = sURL.substring(0,nPOS);
		}
		xmlHTTP.open("POST",sURL,true);
		xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHTTP.setRequestHeader("Content-length", sParams.length);
		xmlHTTP.setRequestHeader("Connection", "close");
		xmlHTTP.onreadystatechange=UpdateAjaxRequest;
		xmlHTTP.send(sParams);
	}
}
function UpdateAjaxRequest()
{
	if (xmlHTTP.readyState==4){
		if (gsDivID!="") {
			var e = document.getElementById(gsDivID);
			if(e){
				var sResponseText = xmlHTTP.responseText;
				e.innerHTML =  sResponseText;
				if (gsDivID == "ShippingAddress") {
					SendAjaxRequest('AjaxRequest.asp','action=renderShippingAddresssList','ShippingAddressList');
				}
			}
		}
	}
	
}
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;
}

var sMissingErrMsg = "";
var sInvalidErrMsg = "";


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){
			arrElements[n].attachEvent("onkeyup",validInput);
			arrElements[n].obj = arrElements[n];
		}else{
			arrElements[n].addEventListener("keyup",function (){
				if(this.value!=""){
					this.className = this.className.replace("invalidInput","");
				}
			},false);
		}
	}
}

function validatePage(objForm, nameForm)
{
	sMissingErrMsg = "";
	sInvalidErrMsg = "";
	var sErrMsg = ""
	bSetFocus = false;
	validateElements(objForm,"input");
	validateElements(objForm,"select");
	validateElements(objForm,"textarea");
	if (nameForm=="CustomSize" && sMissingErrMsg!="") {
		alert("All marked(*) fields are compulsary");
		return false;
	} else {
		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=="" && arrElements[n].style.display=='' && arrElements[n].disabled==false){
			sMissingErrMsg = sMissingErrMsg + "      " + arrElements[n].id +"\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].id +"\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].id +"\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].id +"\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].id +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
				attachInputEvents(arrElements[n]);
			}
		}
		if((sMissingErrMsg!="" || sInvalidErrMsg!="") && !bSetFocus){
			arrElements[n].focus();
			bSetFocus = true;
		}
		
	}
}

function attachInputEvents(sObj)
{
	if(sObj.attachEvent){
		sObj.attachEvent("onkeyup",validInput);
		sObj.obj = sObj;
	}else{
		sObj.addEventListener("keyup",function (){
			if(this.value!=""){
				this.className = this.className.replace("invalidInput","");
			}
		},false);
	}
}

function fSafeNum(str){
	str = str + "";
	str = replaceAll(str,",","");
	if(isNaN(str) || str==""){
		return 0;
	} else {
		return parseFloat(str);
	}
}

maxL=500;
function taLimit(taObj) {
	if (taObj.value.length==maxL) return false;
	return true;
}

function taCount(taObj,Cnt) { 
	objCnt=createObject(Cnt);
	objVal=taObj.value;
	if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
	if (objCnt) objCnt.innerText=maxL-objVal.length;
	return true;
}
function createObject(objId) {
	if (document.getElementById) return document.getElementById(objId);
	else if (document.layers) return eval("document." + objId);
	else if (document.all) return eval("document.all." + objId);
	else return eval("document." + objId);
}

function toggleDisabled(el) {
	try {
		el.disabled = el.disabled ? false : true;
	} catch(E){ }
	
	if (el.childNodes && el.childNodes.length > 0) {
		for (var x = 0; x < el.childNodes.length; x++) {
			toggleDisabled(el.childNodes[x]);
		}
	}
}

function roundNumber(number,decimal_points) {
	if(!decimal_points) return Math.round(number);
	if(number == 0) {
		var decimals = "";
		for(var i=0;i<decimal_points;i++) decimals += "0";
		return "0."+decimals;
	}

	var exponent = Math.pow(10,decimal_points);
	var num = Math.round((number * exponent)).toString();
	return num.slice(0,-1*decimal_points) + "." + num.slice(-1*decimal_points)
}

function show(ele) {
    var srcElement = document.getElementById(ele);
    if(srcElement != null) {
  		if(srcElement.style.display == "block") {
  			srcElement.style.display= 'none';
  		} else {
  			srcElement.style.display='block';
  		}
    }
}

function RefreshImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function getFormElements(objForm)
{
	var sAjaxParams1 = getElementsVals(objForm,"input");
	var sAjaxParams2 = getElementsVals(objForm,"select");
	var sAjaxParams3 = getElementsVals(objForm,"textarea");
	var retParams = sAjaxParams1 + sAjaxParams2 + sAjaxParams3;
	retParams = replaceAll(retParams,"&&","&"); 
	if(retParams.indexOf("&")==0){
		retParams = retParams.substring(1);
	}
	if(retParams.indexOf("&")==retParams.length){
		retParams = retParams.substring(0,retParams.length-1);
	}
	return retParams;
}

function getElementsVals(objForm,sTagNames)
{
	var sAjaxParams = ""
	var arrElements = objForm.getElementsByTagName(sTagNames);
	for(n=0;n<arrElements.length;n++){
		if(sTagNames=="select"){
			for(i=0;i<arrElements[n].length;i++){
				if(arrElements[n].options[i].selected){
					sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].options[i].value);	
				}
			}
		}
		else if(arrElements[n].type=="checkbox"){
			if(arrElements[n].checked){
				sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
			}
		}
		else if(arrElements[n].type=="radio"){
			if(arrElements[n].checked){
				sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
			}		
		}
		else{
			sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
		}
	}
	return sAjaxParams;
}

function createDivElement(sParentDiv, sChildDiv, Counter) {
	var parentDiv = document.getElementById(sParentDiv);
	var TotalCounter = document.getElementById(Counter);
	var updateCounter = parseInt((TotalCounter.value))+1;
	TotalCounter.value = updateCounter;
	var newdiv = document.createElement('div');
	var divIdName = sChildDiv+updateCounter;
	newdiv.setAttribute('id',divIdName);
	parentDiv.appendChild(newdiv);
	
	SendAjaxRequest('AjaxRequest.asp','action=renderQuickAddRow&Counter='+updateCounter,divIdName);
}

function enableTextBox(ele) {
	if(document.getElementById(ele).disabled) {
		document.getElementById(ele).disabled = false;
	} else {
		document.getElementById(ele).value = 0;
		document.getElementById(ele).disabled = true;
	}
}
