var tabMap = new Object();
var urlMap;
var modeInfo = new Object();
//mode 0 means rewrite and 1 means append
tabMap['customers'] = {url:"showcustomers"};//this name should be same as php name
tabMap['bills'] = {url:"showcurrentyearbills"};
tabMap['reports']= {url:"showreports"};
tabMap['settings']= {url:"showsettings"};
tabMap['logout']= {url:"logins/logout"};
tabMap['tariff'] = {url:"payments/mastertariff"};
function navigate(navigateKey,navigateType)
{
	showLoader();
	var navigateUrl=null;
	var navigateUrlObj=null;
	try{
		if(navigateType=='TAB'){
		navigateUrlObj = tabMap[navigateKey];
		navigateUrl = navigateUrlObj["url"];
		}
		if(navigateType=='URL')
		{
		navigateUrl = urlMap[navigateKey];
		}
		
	}catch(e){alert('error' + e);}
	//navigateUrl=navigateUrl+"&acc="+accountIDUsed;
	//alert('navigating to '+navigateUrl);
	new Ajax.Request('/BillsReminder/public/index.php',{
	    onSuccess:function(transport){
		var tempDiv = document.createElement('div');
		if(tempDiv!=null){
		tempDiv.style.display='none';
		document.body.appendChild(tempDiv);
		tempDiv.innerHTML = "<div style='display:none'>A</div>"+transport.responseText;
	//	alert(tempDiv.innerHTML);
		runEmbeddedJS(tempDiv);
		replaceTargetDiv(tempDiv);
		document.body.removeChild(tempDiv);
		callLater();
		hideLoader();
		}
		
	},
		method:'get',
		parameters:{url:navigateUrl,acc:accountIDUsed}
	
	});
}
function positionLoaderDiv()
{
	var noPx = document.childNodes ? 'px' : 0;
	var browserName=navigator.appName;
	if (browserName=="Microsoft Internet Explorer")
	{
		myWidth = Math.round(document.body.offsetWidth/2);
		myHeight =Math.round(document.body.offsetHeight/2);;
		var EmailImageDiv = document.getElementById('loaderDiv');
		if(EmailImageDiv != null)
		{
			var newmyWidth =EmailImageDiv.style.left = myWidth + noPx;
			var newmyHeight = EmailImageDiv.style.top = myHeight + noPx;
		}
	}
	else
	{
		myWidth = Math.round(window.innerWidth/2);
		myHeight = Math.round(window.innerHeight/2);
		var EmailImageDiv = document.getElementById('loaderDiv');
		if(EmailImageDiv != null)
		{
			var newmyWidth =EmailImageDiv.style.left = myWidth + noPx;
			var newmyHeight = EmailImageDiv.style.top = myHeight + noPx;
		}
	}

}

function showLoader()
{
	positionLoaderDiv();
	var loaderDiv = document.getElementById('loaderDiv');
	if(loaderDiv != null)
		loaderDiv.style.display="inline";

}
function hideLoader()
{
	var loaderDiv = document.getElementById('loaderDiv');
	if(loaderDiv != null)
		loaderDiv.style.display="none";

}
	function replaceTargetDiv(tempDiv)
	{
		
		var childDivs = tempDiv.getElementsByTagName('div');
        if(childDivs != null)
        {
        try{
        			
                 for(var i=0;i<childDivs.length;i++)
                 {
                         var divId = childDivs[i].id;
                         //now remove the result part from it(result_divId)
                         if(divId == null || divId.indexOf('_') == -1)
                                 continue;
                         var targetString = "result_";
                         var targetId = divId.substring(targetString.length,divId.length);
                         var targetDivObj = document.getElementById(targetId);
                         var responseDivObj = document.getElementById(divId);
                         if(targetDivObj!=null)
                         {
                                 if(divId!=null){
                              if(modeInfo!=null && modeInfo[targetId]==0){
                                      targetDivObj.innerHTML = responseDivObj.innerHTML;
                                      }
                              if(modeInfo!=null && modeInfo[targetId]==1){
                                      targetDivObj.innerHTML = targetDivObj.innerHTML +  responseDivObj.innerHTML;
                              }
                              if(modeInfo!=null && modeInfo[targetId]==2){
                                      targetDivObj.innerHTML = responseDivObj.innerHTML + targetDivObj.innerHTML ;
                              }
                                 }
                         }
                 }
        	}catch(e)
        	{
                alert('some error occured in replacing' + e);
        	}
        }
	}
	function runEmbeddedJS(tempDiv)
		{	
			if(tempDiv!=null){ 
			var childNodes = 	tempDiv.getElementsByTagName('script');
			 try{
				 for(var i=0;i<childNodes.length;i++)
				 {
				 eval(childNodes[i].innerHTML);
				 }
			 }catch(e)
			 	{
				 alert('Opps! Some error occured ' + e);	
			    }
			
			}//end of null check
		}
	
	function submitSingleField(fieldIdArray,navigateKey,inputValueDirect)
	{
		//alert(fieldIdArray[0]);
		//alert(navigateKey);
		showLoader();
		var parameterString="";	
		if(inputValueDirect)
		{
			parameterString="inputDirect="+escape(inputValueDirect);
			
		}
		navigateUrl = urlMap[navigateKey];
		//alert(navigateUrl);
		if(fieldIdArray!=null){
		
		
		for(var fieldNos=0; fieldNos<fieldIdArray.length;fieldNos++)
		{
			
			var inputField = document.getElementById(fieldIdArray[fieldNos]);	
			if(inputField!=null)
			{
				var inputFieldName = escape(inputField.name);
				var inputFieldValue = escape(inputField.value);
				var inputFieldId = escape(inputField.id);
				if(inputFieldName!=null && inputFieldValue!=null)
				{
					if(fieldNos==fieldIdArray.length-1)
					{
					parameterString = parameterString+inputFieldName+"="+inputFieldValue +"&fieldId="+inputFieldId;
					}
					else{
						parameterString = parameterString+inputFieldName+"="+inputFieldValue +"&fieldId="+inputFieldId+"&";
					}
				}
					
			}
		}
		}//end of null check for array
		//alert(navigateUrl);
		
		if(fieldIdArray !=null || parameterString !="")
		{
//			navigateUrl=navigateUrl+"&acc="+accountIDUsed;
		new Ajax.Request('/BillsReminder/public/index.php?'+parameterString ,{
		    onSuccess:function(transport){
				var tempDiv = document.createElement('div');
				if(tempDiv!=null){
				tempDiv.style.display='none';
				document.body.appendChild(tempDiv);
				tempDiv.innerHTML = "<div style='display:none'>A</div>"+transport.responseText;
			//	alert(tempDiv.innerHTML);
				runEmbeddedJS(tempDiv);
				replaceTargetDiv(tempDiv);
				document.body.removeChild(tempDiv);
				callLater();
				hideLoader();
				}
			},
			method:'get',
			parameters:{url:navigateUrl,acc:accountIDUsed}
		});
		}
		
	}
	function submitData(formId,navigateKey)
		{		
			showLoader();
			navigateUrl = urlMap[navigateKey];
		 			
			if(formId==null)
				return;
			navigateUrl=navigateUrl+"&acc="+accountIDUsed;
			new Ajax.Request('/BillsReminder/public/index.php? url='+navigateUrl ,{
		    onSuccess:function(transport){
				var tempDiv = document.createElement('div');
				if(tempDiv!=null){
				tempDiv.style.display='none';
				document.body.appendChild(tempDiv);
				tempDiv.innerHTML = "<div style='display:none'>A</div>"+transport.responseText;
				//alert(tempDiv.innerHTML);
				runEmbeddedJS(tempDiv);
				replaceTargetDiv(tempDiv);
				document.body.removeChild(tempDiv);
				callLater();
				hideLoader();
				}
			},
			parameters:$(formId).serialize(true)
		});

		}
	function saveAndAddMore(saveNAddMoreHiddenInput,formId,storedProc)
	{
		//alert('I m inside saveAndAddMore function');
		var saveNAddMoreHiddenInputField=document.getElementById(saveNAddMoreHiddenInput);
		//alert(saveNAddMoreHiddenInputField);
		if(saveNAddMoreHiddenInputField!=null)
		{
		//	alert(saveNAddMoreHiddenInputField.value);
		 	saveNAddMoreHiddenInputField.value='true';
		 //	alert(saveNAddMoreHiddenInputField.value);
		}
		 
			 
			//document.myform.submit() ;
			//var r = document.getElementById('createNewContacts');
			//alert(r.id);
			submitData(formId,storedProc);
		  
	}

