//DEclation The XMLHTTP REquest for all Browsers
var request = false;
var dest;

try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
	  try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	  } catch (othermicrosoft) {
		try {
		  request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
		  request = false;
		}
	}
}
if (!request)
  alert("Error initializing XMLHttpRequest!");



function processStateChange(){
	contentDiv = document.getElementById(dest);
	//alert(contentDiv);
	//alert(dest);

		if(request.readyState<=3){
		
		contentDiv.innerHTML = "Loading...";
		}
		
    if (request.readyState == 4){
        
        if (request.status == 200){
            response = request.responseText;
			//alert(response);
            contentDiv.innerHTML = response;
			
        } else {
				//alert(response);
            contentDiv.innerHTML = "Error: Status "+request.status;
        }
    }
}

function loadHTML(URLs, Destinations,JavascriptLoad){
	var arrDestination=Destinations.split("|||");
	var arrURL=URLs.split("|||");
    

	for (i=0;i<arrDestination.length;i++){

		dest = arrDestination[i];
		
        if (request) {
			//alert(arrURL[i]);
			request.open("GET", arrURL[i], false);
            request.onreadystatechange = processStateChange;
            request.send(null);
				
			
	

        }
		else {
		alert("No Request");
		}
	}//end of For
}//end of funtion
//////////////////////////////////////////////////////

function formData2QueryString(docForm) {

 // alert(docForm + "   Shazib  ");
  
  var submitContent = '';
  var formElem;
  var lastElemName = '';
  
  for (i = 0; i < docForm.elements.length; i++) {
    
    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
        submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        break;
        
      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        }
        break;
        
      // Checkboxes
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == lastElemName) {
            // Strip of end ampersand if there is one
            if (submitContent.lastIndexOf('&') == submitContent.length-1) {
              submitContent = submitContent.substr(0, submitContent.length - 1);
            }
            // Append value as comma-delimited string
            submitContent += ',' + escape(formElem.value);
          }
          else {
            submitContent += formElem.name + '=' + escape(formElem.value);
          }
          submitContent += '&';
          lastElemName = formElem.name;
        }
        break;
        
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  return submitContent;
}
///////////////////////////////////
function PostFormData(URL,formName){
	//var strShipperName = document.getElementById("strShipperName").value;
	if(validateFrm(formName))
	{
		var submitContent=formData2QueryString(formName);
			
		 var NewURL=URL+"?"+submitContent;
		//alert(NewURL);
		 request.open("Post", NewURL, true);
		 request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		 request.onreadystatechange = updatePage;
		 request.send(null);
		 return true;
		 	 return true;
	}
	else{
		return false;}
	
   }
///////////////////////////////////
function PostFormDataAdditional(URL,formName,AdditionalFieldName,AdditionalField){
	//var strShipperName = document.getElementById("strShipperName").value;
	if(validateFrm(formName))
	{
		var submitContent=formData2QueryString(formName);
			
		 var NewURL=URL+"?"+submitContent+"&"+AdditionalFieldName+"="+AdditionalField;
		//alert(NewURL);
		 request.open("Post", NewURL, true);
		 request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		 request.onreadystatechange = updatePage;
		 request.send(null);
		 return true;
		 }
	else{
		return false;}
	
   }

/////////////////////////////////////////////////////////////////
   function updatePage() {
		loadingDiv = document.getElementById("Loading");
		if(request.readyState<=3)
		loadingDiv.innerHTML="Updating....";
	   if(request.readyState==4){
		   if(request.status==200){
			//alert("Server is done!"+request.readyState);
			var response=request.responseText;
			//alert(response);
			//ContentDiv=document.getElementById("content");
			//ContentDiv.innetHTML=response;
			loadHTML(response, "content");
			loadingDiv.innerHTML="";
		   }else{
		   alert("Server status!"+request.status);
		   }
	   }
   }
/////////////////////////////////////////////////////////////
function DeleteRec(URL){

		 request.open("Get", URL, true);
		 request.onreadystatechange = RecordDeleted;
		 request.send(null);
	 }

/////////////////////////////////////////////////////////////
function RecordDeleted(){
	loadingDiv = document.getElementById("Loading");
		if(request.readyState<=3)
		loadingDiv.innerHTML="Deleting....";
	 if(request.readyState==4){
		   if(request.status==200){
			loadingDiv.innerHTML="";
		   }else{
		   alert("Server status!"+request.status);
		   }
	   }
}
/////////////////////////////////////////////////////////////
   function validateEmpty(control,divName){
	   
   if(control.value==""){
	   DivError=document.getElementById(divName);
	   DivError.innerHTML="Can't Leave This Field Empty";
	   control.focus();
   }
   }

  /* function validateFrm(frm){
   if (frm.strShipperName.value=="")
   {
	   alert("empty Value");
	   frm.strShipperName.focus();
	   return false;
   }
   return true;
   }*/

function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
   


}

//////////////////////////////////////////////////////
// FUNCTION FOR ADDING FIELDS TO FORM ON RUNTIME    //
/////////////////////////////////////////////////////


function moreFields(formName)
{
	
	
	var Debit=0;
	var Credit=0;
	var flag;
	var amountValue;
	formlength=formName.elements.length;

	for(k=1;k<=counter;k++)
		{
			var strDCName="dbcr" + k;
			var strAmountName="nVoucherAmount" + k;
			for (j=0;j<formlength ;j++ )
			{
				formElem=formName.elements[j];
				//alert(formElem.name);
				
				if(formElem.name==strDCName)
					if (formElem.value=="D")
					{
						flag="D";
					}
					else{
						flag="C";
					} 
				if(formElem.name==strAmountName)
				{
					if(formElem.value=="")
						amountValue=0;
					else
						amountValue=parseInt(formElem.value);
				}
			 }//end of inner For(J)
		if(flag=="D")
		Debit=Debit + amountValue;
		else
		Credit=Credit + amountValue;
			
	Debit=parseInt(Debit);
	Credit=parseInt(Credit);
	if(Debit==Credit && Debit!=0 && Credit!=0){
		counter=k;
	}
	}//end of Outer FOR (K)

	

    
	alert("Debit = "+ Debit + " Credit = " + Credit);
		
	if(Debit==Credit && Debit!=0 && Credit!=0){
		//alert("Debit = "+ " Credit" + "AND counter = " + counter );
		PostFormDataAdditional("save_journal_voucher.php",formName,"nCounter",counter);
	}else{
		counter++;

		var newFields = document.getElementById('readroot').cloneNode(true);
		newFields.id = '';
		newFields.style.display = 'block';
		var newField = newFields.all;
		//alert(newFields.all.length);
		for (var i=0;i<newField.length;i++)
		{
			var theName = newField[i].name;
			if (theName)
			{
				newField[i].name = theName + counter;
				//alert(newField[i]);
			}
		}
		var insertHere = document.getElementById('writeroot');
		insertHere.parentNode.insertBefore(newFields,insertHere);
	
    
	}
	
	
}
///////////////////////////////////////////////////
// Function To Show Varibales of Javascript
///////////////////////////////////////////////////
function ShowVar(variable)
{
   //var myFoo = document.getElementById("entry_no");
   this.innerHTML = variable;
}