/*
  added showTab check whether element exists in DOM tree, blank tabs produces JS error
*/

/* toggle debug layer on and off */
function handleDebugger(){
  if(document.getElementById('debugger').className == 'closed') {
    document.getElementById('debugger').className = 'opened';
    document.getElementById('debug_content').style.display = 'block';
  } else {
    document.getElementById('debug_content').style.display = 'none';  
    document.getElementById('debugger').className = 'closed';
  }
}

/* selects all li in list of msg */
function selectAllMsg(id){
    var inputs = document.getElementsByTagName("input");
    var state;

    for (var i=0; i < inputs.length; i++) {
        var obj = inputs[i];
         if ((obj.type == "checkbox") && (obj.name == id) ){
            state = obj.checked; // true or false
            obj.checked = true;
        }
    }
}
/* unselects all li in list of msg */
function unselectAllMsg(id){
    var inputs = document.getElementsByTagName("input");
    var state;

    for (var i=0; i < inputs.length; i++) {
        var obj = inputs[i];
         if ((obj.type == "checkbox") && (obj.name == id) ){
            state = obj.checked; // true or false
            obj.checked = false;
        }
    }
}

/* function handles javascript addresses in tabBox */
function showTab(id, id_prefix, tabs_num){
  // annulate all elems to display: none and inactive links
  for (var index=0; index < tabs_num; index++) {
    //alert('tabBoxContentPart_'+id_prefix+'_'+index+'\ntabBoxLink_'+id_prefix+'_'+index);
    if(document.getElementById('tabBoxContentPart_'+id_prefix+'_'+index) != null)
      document.getElementById('tabBoxContentPart_'+id_prefix+'_'+index).style.display = 'none';
    if(document.getElementById('tabBoxLink_'+id_prefix+'_'+index) != null)
      document.getElementById('tabBoxLink_'+id_prefix+'_'+index).className = 'inactiveLink';
  }      
    
  // set visibility for id 
  document.getElementById('tabBoxContentPart_'+id_prefix+'_'+id).style.display = 'block';
  document.getElementById('tabBoxLink_'+id_prefix+'_'+id).className = 'activeLink';
}

function ValidateForm(id_array, pattern_array, value_array, msg_array, alt_array){
  for(var i=0; i<id_array.length; i++){

    switch(pattern_array[i]){
      // empty pattern 
      case 'empty':
        if(document.getElementById(id_array[i]).value==""){
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] can`t be empty!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }      
      break;
      
      // mail pattern
      case 'mail':
        if(document.getElementById(id_array[i]).value != ''){
          if(window.RegExp) {
          	re = new RegExp("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\-]+\.[a-zA-Z]{2,4}$")
          	if(!re.test(document.getElementById(id_array[i]).value)) {
          		alert(msg_array[i]+"\n\n(Incorrect e-mail format!)");
          		document.getElementById(id_array[i]).focus();
          		return false;
          	}
          }
        } 	        
      break;
      
      // int pattern
      case 'int':
        if(document.getElementById(id_array[i]).value != ''){
          if(window.RegExp) {
          	re = new RegExp("^[0-9]+$")
          	if(!re.test(document.getElementById(id_array[i]).value)) {
          		alert(msg_array[i]+"\n\n(Incorrect integer format!)");
          		document.getElementById(id_array[i]).focus();
          		return false;
          	}
          }
        }       
      break;
      
      // float pattern
      case 'float':
        if(document.getElementById(id_array[i]).value != ''){      
          if(window.RegExp) {
          	re = new RegExp("^[0-9]+(\.[0-9]+){0,1}$")
          	if(!re.test(document.getElementById(id_array[i]).value)) {
          		alert(msg_array[i]+"\n\n(Incorrect integer format!)");
          		document.getElementById(id_array[i]).focus();
          		return false;
          	}
          }
        }             
      break;
            
      // date pattern (YYYY-MM-DD)
      case 'date':
        if(document.getElementById(id_array[i]).value != ''){        
          if(window.RegExp) {
          	re = new RegExp("^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$")
          	if(!re.test(document.getElementById(id_array[i]).value)) {
          		alert(msg_array[i]+"\n\n(Incorrect date format (YYYY-MM-DD)!)");
          		document.getElementById(id_array[i]).focus();
          		return false;
          	}
          }
        }   
      break;

      // datetime pattern (YYYY-MM-DD HH:MM:SS)
      case 'datetime':
        if(document.getElementById(id_array[i]).value != ''){
          if(window.RegExp) {
          	re = new RegExp("^[0-9]{4}\-[0-9]{2}\-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$")
          	if(!re.test(document.getElementById(id_array[i]).value)) {
          		alert(msg_array[i]+"\n\n(Incorrect datetime format (YYYY-MM-DD HH:MM:SS)!)");
          		document.getElementById(id_array[i]).focus();
          		return false;
          	}
          }   
        }          
      break;
            
      // checked pattern
      case 'checked':
        if(document.getElementById(id_array[i]).checked==false){
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be checked!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }        
      break;
      
      // http link
      case 'link':
        if(window.RegExp) {
        	re = new RegExp("^http(s)?:\/\/[a-zA-Z0-9]+([-_\.]?[a-zA-Z0-9])*\.[a-zA-Z]{2,4}(\/{1}[-_~&=\?\.a-zA-Z0-9]*)*$")
        	if(!re.test(document.getElementById(id_array[i]).value) && document.getElementById(id_array[i]).value != '') {
        		alert(msg_array[i]+"\n\n(Incorrect link format!)");
        		document.getElementById(id_array[i]).focus();
        		return false;
        	}
        }       
      break;
      
      // comparing with another element (eg. password & retype)
      case 'id':
        if(document.getElementById(id_array[i]).value!==document.getElementById(value_array[i]).value){
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be same value as element [id: "+value_array[i]+"]!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }              
      break; 
      
      
      // comparing to value equal
      case 'value':
        var value;
        if(typeof(value_array[i]) == 'number') value = parseInt(document.getElementById(id_array[i]).value, 10);
        else value = String(document.getElementById(id_array[i]).value); 
        
        if( (document.getElementById(id_array[i]).value != '') && ((value!=value_array[i]) || ( isNaN(value) && typeof(value) == 'number')) ){        
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be specific value!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }              
      break; 

      // comparing to value greater than
      case 'value_gt':
        var value;
        if(typeof(value_array[i]) == 'number') value = parseInt(document.getElementById(id_array[i]).value, 10);
        else value = String(document.getElementById(id_array[i]).value); 
        
        if( (document.getElementById(id_array[i]).value != '') && ((value<=value_array[i]) || ( isNaN(value) && typeof(value) == 'number')) ){
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be greater than: "+value_array[i]+"!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }              
      break; 
      
      // comparing to value greater or equal than 
      case 'value_gte':
        var value;
        if(typeof(value_array[i]) == 'number') value = parseInt(document.getElementById(id_array[i]).value, 10);
        else value = String(document.getElementById(id_array[i]).value); 
        
        if( (document.getElementById(id_array[i]).value != '') && ((value<value_array[i]) || ( isNaN(value) && typeof(value) == 'number')) ){        
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be greater or equal than: "+value_array[i]+"!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }              
      break;       
      
      // comparing to value less than
      case 'value_lt':
        var value;
        if(typeof(value_array[i]) == 'number') value = parseInt(document.getElementById(id_array[i]).value, 10);
        else value = String(document.getElementById(id_array[i]).value); 
        
        if( (document.getElementById(id_array[i]).value != '') && ((value>=value_array[i]) || ( isNaN(value) && typeof(value) == 'number')) ){        
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be less than: "+value_array[i]+"!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }              
      break;
      
      // comparing to value less or equal than
      case 'value_lte':
        var value;
        if(typeof(value_array[i]) == 'number') value = parseInt(document.getElementById(id_array[i]).value, 10);
        else value = String(document.getElementById(id_array[i]).value); 
        
        if( (document.getElementById(id_array[i]).value != '') && ((value>value_array[i]) || ( isNaN(value) && typeof(value) == 'number')) ){        
          alert(msg_array[i]+"\n\n(Element [id: "+id_array[i]+"] must be less or equal than: "+value_array[i]+"!)");
          document.getElementById(id_array[i]).focus();
          return false;
        }                      
      break;       
    }
  }
  return true;
}

/* show group description */
function showGroupDesc(grp_desc, grp_stat, form_elem){
  var index;
  if(form_elem.value == -1) index = 0;
  else index = form_elem.value;
  
  document.getElementById('groupDesc').value = grp_stat[index]+'\n'+grp_desc[index];
}

/* show group description */
function showPrivDesc(desc_array, form_elem, tarea_id){   
  document.getElementById(tarea_id).innerHTML = desc_array[form_elem.value];
}

/* file csv upload - show additional source information */
function src_showAddInfo(elem){
  switch(parseInt(elem.value)){
    case 1: // center version data
      document.getElementById('addInfoSrc').style.display='none';
      break;
    
    case 2: // client data
      document.getElementById('addInfoSrc').style.display='none';
      break;
    
    case 3: // lead data
      document.getElementById('addInfoSrc').style.display='none';
      break;
    
    case 4: // other
      document.getElementById('addInfoSrc').style.display='none';
      break;
      
    case 5: // post card
      //document.getElementById('srcAddCvd').style.display='none'; 
      document.getElementById('srcAddWf').style.display='none'; 
      document.getElementById('srcAddPpc').style.display='none';
      document.getElementById('srcAddPCard').style.display='block';
      document.getElementById('addInfoSrc').style.display='block';
      break;
      
    case 6: // ppc
      //document.getElementById('srcAddCvd').style.display='none'; 
      document.getElementById('srcAddPCard').style.display='none';
      document.getElementById('srcAddWf').style.display='none';  
      document.getElementById('srcAddPpc').style.display='block';
      document.getElementById('addInfoSrc').style.display='block';
      break;
      
    case 7: // webforms
      //document.getElementById('srcAddCvd').style.display='none'; 
      document.getElementById('srcAddPCard').style.display='none';
      document.getElementById('srcAddPpc').style.display='none';
      document.getElementById('srcAddWf').style.display='block';      
      document.getElementById('addInfoSrc').style.display='block';
      break;
      
    default:
      document.getElementById('addInfoSrc').style.display='none';
  }
}
/* file CSV upload - show postcard version info */
function src_showPCardVersion(elem){
  for(var i=1;i<elem.length;i++) document.getElementById('type_'+i).className='srcPCardVersion hidden';
  document.getElementById('type_'+elem.selectedIndex).className='srcPCardVersion visible';
}

/* validate file CSV upload - no possible to use default validation via FORM class - too difficult logic */
function ValidateCSVForm(){
  if(document.getElementById('csv_file').value == ''){
    alert('CSV file must be selected!'); 
    document.getElementById('csv_file').focus();
    return false;
  }
  if(document.getElementById('csv_title').value == ''){
    alert('Please give a title for the file.'); 
    document.getElementById('csv_title').focus();
    return false;
  }
  return true;  
}

/* submitting form */
function submitGroupForm(id,ActionForm){
  if(document.getElementById(id).value == 'delete'){
    if(!confirm('Do you really want to delete these items?')) return false;
		else document.forms[ActionForm].submit();
  } else document.forms[ActionForm].submit();
}

/* selecting checkboxes within ID element */
function CheckWithinID(id){
  var inputs = document.getElementById(id).getElementsByTagName('input');
  
  for (var i=0; i < inputs.length; i++) {
    var obj = inputs[i];
    if( obj.type == "checkbox" ){
      if( obj.name == 'general' ){
        if( obj.checked == true) var state = true; else var state = false;
      }
      obj.checked = state;
    }
  }  
}
/*CPC-Maching*/


/* Importing data - fields selection*/
function addfield(fd)
{
  if(fd.checked)
  {
    document.getElementById('finalfields').value += fd.value+"\r\n";
  }
  else
  {
    var str = document.getElementById('finalfields').value;
    var strField = new RegExp(fd.value+"\n", 'g');
    document.getElementById('finalfields').value = str.replace(strField, "")
  }
}

function selectAllCheck()
{
  var form = document.importForm;
  document.getElementById('finalfields').value = '';
  for (i=0;i<form.elements.length;i++)
  {
    if (form.elements[i].type=='checkbox')
    {
      form.elements[i].checked = true;
      document.getElementById('finalfields').value += form.elements[i].value + "\n";
    }
  }
}
function deSelectAllCheck()
{
   var form = document.importForm;
  for (i=0;i<form.elements.length;i++)
  {
    if (form.elements[i].type=='checkbox')
      form.elements[i].checked = false;
  } 
  document.getElementById('finalfields').value = '';
}

function showHint(ev, type){
  var text;
  var e = ev ? ev : window.event;
  var title;
  
  switch(type){
    case 'totalAmt': 
      title = 'Total amount service wise';
      text = 'signifies percentage of converting leads into clients. <br /><br /><span class="deletedItem">(+ number)</span> signifies convertion rate for unidentified leads coming from Marketing data.'; break;
    case 'invcAmt': 
      title = 'Total invoiced amount';
      text = 'signifies total number of unique leads coming into system. <br /><br />Multiple answers for the same lead are considered as one lead - possible mismatch between numbers in campaigns (number of contributions) and this numbers. <br /><br /><span class="deletedItem">(+ number)</span> signifies number of unidentified leads coming from Marketing data.'; break;
    case 'recvAmt': 
      title = 'Total received amount';
      text = 'signifies total number of unique clients coming from leads per selected source/center. <br /><br /><span class="deletedItem">(+ number)</span> signifies number of unidentified clients converted from Marketing data.'; break;
    case 'PendAmt':
      title = 'Total pending amount';
      text = 'signifies total number of unmatched clients - clients coming directly into system without any lead entry.';
  }
  
  document.getElementById('hintTitleLeft').innerHTML = title;
  document.getElementById('hint_container').innerHTML = text;
  document.getElementById('hint').style.display = 'block';
  document.getElementById('hint').style.left = (e.clientX - document.getElementById('hint').offsetWidth - 2)+ 'px';
  document.getElementById('hint').style.top = (e.clientY - document.getElementById('hint').offsetHeight) + 'px';    
}


function copyClip()
{
	alert("If you are using firefox please do the following :\n 1. Write in your url box : 'about:config'\n2. Change signed.applets.codebase_principal_support = true\n");
	document.getElementById("content").focus();
	document.getElementById("content").select();
	document.execCommand('Copy');
	
}

/*function showRefr(val2)*/
function showRefr()
{
	var w = document.getElementById('source').selectedIndex;
    var val = document.getElementById('source').options[w].value;

	if(val==2){
		document.getElementById('referenceDiv').style.display ='';
		document.getElementById('otherdescDiv').style.display ='none'
	}
	else if(val==1){
		document.getElementById('otherdescDiv').style.display ='';
		document.getElementById('referenceDiv').style.display ='none';
		document.getElementById('csourceDiv').style.display ='none';
		document.getElementById('odescDiv').style.display ='none';
	}
	else {
		document.getElementById('referenceDiv').style.display ='none';
		document.getElementById('otherdescDiv').style.display ='none';
		document.getElementById('csourceDiv').style.display ='none';
		document.getElementById('odescDiv').style.display ='none';
	}
}

function showclient(val)
{
	if(val==1){
		document.getElementById('odescDiv').style.display ='';
		document.getElementById('csourceDiv').style.display ='none';
	}
	else if(val==2){
		document.getElementById('csourceDiv').style.display ='';
		document.getElementById('odescDiv').style.display ='none';
	}
	else{
		document.getElementById('csourceDiv').style.display ='none';
		document.getElementById('odescDiv').style.display ='none';
	}
}
function showCnum(val){

	if(val==0)
	{
		var w = document.getElementById('contrctNum').selectedIndex;
		var ddlval = document.getElementById('contrctNum').options[w].value;
		if(ddlval==0)
			document.getElementById('contractDiv').style.display ='none';
		else
			document.getElementById('contractDiv').style.display ='';
		document.getElementById('cntrctNumDiv').style.display ='';
	}
	else if(val==1)
	{
		document.getElementById('cntrctNumDiv').style.display ='none';
		document.getElementById('contractDiv').style.display ='none';
	}
}

function toggle(val,id)
{
	//alert(val+id);
	
	if(document.getElementById(val).innerHTML=='[+]')
	{
		document.getElementById(val).innerHTML = '[-]';
		document.getElementById('divBar'+id).style.display = '';
	}
	else
	{
		document.getElementById(val).innerHTML = '[+]';
		document.getElementById('divBar'+id).style.display = 'none';
	}
}

var xmlhttp;
function getPhases(str, str2, str3)
{

	// if (document.referrer != '') 
	// {
		// var t = document.referrer;
		// var s = t.split('&');
		// var k = s[1].split('-');
		// alert('Thanks for visiting from ' + k[1]); 
	// }

	if(str == 0){
		document.getElementById("phase").innerHTML="Select service..!";
		return;
	}
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="inc/client/getphases.php";
	//url=url+"?q="+str;
	url=url+"?q="+str+"&q2="+str2+"&q3="+str3;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function stateChanged()
{
	if(xmlhttp.readyState==0){
		document.getElementById("phase").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==1){
		document.getElementById("phase").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==2){
		document.getElementById("phase").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==3){
		document.getElementById("phase").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==4){
		document.getElementById("phase").style.display="";
		document.getElementById("wait").style.display="none";
		document.getElementById("phase").innerHTML=xmlhttp.responseText;
	}
}

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 getContract(str)
{
	if(str == 0){
		document.getElementById("wait").style.display="none";
		document.getElementById("contractDiv").style.display="none";
		return;
	}
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="inc/client/getcontracts.php";
	url=url+"?q="+str;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChanged2;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function stateChanged2()
{
	if(xmlhttp.readyState==0){
		document.getElementById("contractDiv").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==1){
		document.getElementById("contractDiv").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==2){
		document.getElementById("contractDiv").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==3){
		document.getElementById("contractDiv").style.display="none";
		document.getElementById("wait").style.display="";
	}
	else if(xmlhttp.readyState==4){
		document.getElementById("contractDiv").style.display='';
		document.getElementById("wait").style.display="none";
		document.getElementById("contractDiv").innerHTML=xmlhttp.responseText;
	}
	
}

function deletePhs(id)
{
	document.getElementById('unchkPhase').value ='';
	var inputs = document.getElementsByTagName("input");
	
	for (var i=0; i < inputs.length; i++) {
		var obj = inputs[i];
		 if ((obj.type == "checkbox") && (obj.checked == false)){
			if(document.getElementById('unchkPhase').value=='')
				document.getElementById('unchkPhase').value = obj.value;
			else
				document.getElementById('unchkPhase').value = obj.value+','+document.getElementById('unchkPhase').value;
		}
	}
	
	if(document.getElementById(id).checked==false)
	{
		if(confirm("Do you really want to delete this phase, this action is undoable!")==false)
		{
			document.getElementById(id).checked=true;
			document.getElementById('unchkPhase').value ='';
		}
	}
	
	//str = document.getElementById('unchkPhase').value;
	// var newStr = str.substring(0, str.length-1);
	
	//alert(str);
}

/**
	invoice & receipts
*/
/* function updating address according to selected client in invoices */
function UpdateAddr(addresses,name){
	document.getElementById('address').value = string_replace(addresses[document.getElementById('id_detail').value], '<br />', '\n');
	document.getElementById('customer').value = string_replace(name[document.getElementById('id_detail').value], '<br />', '\n');
}

/* receipts */
function HandlePaymentModes(id, count){
	for(var i=0;i<count;i++) 
		if(document.getElementById('payment_detail_'+i)) document.getElementById('payment_detail_'+i).style.display='none';
	document.getElementById('payment_detail_'+id).style.display='block';
	if(id >= 4) document.getElementById('payment_structure').style.display = 'none';
	else document.getElementById('payment_structure').style.display = 'block';
	// annulate these fields
	document.getElementById('total_fee').value = 0;
	document.getElementById('check_total').value = 0;
	document.getElementById('check_total').value = 0;
	document.getElementById('check_client_paid').value = 0;
	document.getElementById('check_self_paid').value = 0;
	document.getElementById('check_client_surplus').value = 0;;
	
}

function UpdateTotalFeeLine2(index){
	var amount_obj = document.getElementById('payment_mode_'+index);
	var controll_obj = document.getElementById('payment_mode_controll_'+index);
	
	var new_value = parseFloat(amount_obj.value);
	if(isNaN(new_value)) { new_value = 0; amount_obj.value = new_value; } 
	
	document.getElementById('total_fee').value = parseFloat(document.getElementById('total_fee').value) + new_value - parseFloat(controll_obj.value);
	document.getElementById('check_total').value = parseFloat(document.getElementById('check_total').value) + new_value - parseFloat(controll_obj.value);
	controll_obj.value = parseFloat(new_value);
	CheckPartial();
	RecalculateFeeShare();
}

function UpdateChecksPartial(obj){
	var value = parseFloat(obj.value);
	if(isNaN(value)) { obj.value = 0; value = 0; }
	document.getElementById('check_'+obj.name).value = value;
	CheckPartial();
	UpdateClientPaid();
	RecalculateFeeShare();
}

function CheckPartial(){
	var total = document.getElementById('check_total');
	var client_paid = document.getElementById('check_client_paid');
	var self_paid = document.getElementById('check_self_paid');
	var surplus = document.getElementById('check_client_surplus');
	
	if(parseFloat(total.value) != ( parseFloat(client_paid.value) + parseFloat(self_paid.value) - parseFloat(surplus.value) ) ){
		document.getElementById('check_correct').style.display = 'none';
		document.getElementById('check_incorrect').style.display = 'block';
	} else {
		document.getElementById('check_correct').style.display = 'block';
		document.getElementById('check_incorrect').style.display = 'none';
	}
}

function UpdateClientPaid(){
	var rec_amount = document.getElementById('rec_amount');
	var value = parseFloat(rec_amount.value);
	if(isNaN(value)) { value = 0; rec_amount.value = value; }
	
	document.getElementById('client_paid_total').value = parseFloat(document.getElementById('check_client_surplus').value) + parseFloat(document.getElementById('check_client_paid').value) + value;
	CalculateAdjust();
	RecalculateFeeShare();
}

function CalculateFeeShare(id){
	var total_amount = document.getElementById('rec_amount');
	var client_fee = document.getElementById('check_client_paid');
	var self_fee = document.getElementById('check_self_paid');
	var surplus_fee = document.getElementById('check_client_surplus');
	
	var share_amount_max = document.getElementById('dist_amount_max_'+id);
	var share_amount = document.getElementById('dist_amount_'+id);
	var share_amount_value = parseFloat(share_amount.value);
	if(isNaN(share_amount_value)) { share_amount_value = 0; share_amount.value = share_amount_value; }
	if(parseFloat(share_amount_max.value) < share_amount_value) {
		alert('Can`t assign more than: '+parseFloat(share_amount_max.value));
		share_amount.focus();
		return false;
	}

	var share_client_fee = (parseFloat(client_fee.value) - parseFloat(surplus_fee.value)) * share_amount_value / parseFloat(total_amount.value);
	if(isNaN(share_client_fee)) share_client_fee = 0;
	document.getElementById('dist_client_'+id).value = share_client_fee.toFixed(2);
	
	var share_self_fee = parseFloat(self_fee.value) * share_amount_value / parseFloat(total_amount.value);
	if(isNaN(share_self_fee)) share_self_fee = 0;
	document.getElementById('dist_self_'+id).value = share_self_fee.toFixed(2);
	
	var net_amount = share_amount_value + share_client_fee - share_self_fee;
	if(isNaN(net_amount)) net_amount = 0;
	document.getElementById('dist_net_'+id).value = net_amount.toFixed(2);
	CalculateAdjust();
}

function CalculateAdjust(){
	var elems = document.getElementsByName('dist_amount[]');
	var elems_sum = 0;
	for(var i=0;i<elems.length;i++) 
		if(isNaN(elems[i].value)) { elems[i].value = 0; elems_sum += 0; }
		else elems_sum += parseFloat(elems[i].value);
	var value = parseFloat(document.getElementById('rec_amount').value) - elems_sum;

	document.getElementById('to_adjust').value = value;
	
	if(value == 0){
		document.getElementById('check_correct1').style.display = 'none';
		document.getElementById('check_incorrect1').style.display = 'none';
		document.getElementById('check_equal').style.display = 'block';
	} else if(value < 0){
		document.getElementById('check_correct1').style.display = 'none';
		document.getElementById('check_incorrect1').style.display = 'block';
		document.getElementById('check_equal').style.display = 'none';		
	} else {
		document.getElementById('check_correct1').style.display = 'block';
		document.getElementById('check_incorrect1').style.display = 'none';
		document.getElementById('check_equal').style.display = 'none';		
	}
}

function RecalculateFeeShare(){
	var elems = document.getElementsByName('dist_amount[]');
	var elems_sum = 0;
	for(var i=0;i<elems.length;i++){
		var id = elems[i].id.split('_');
		CalculateFeeShare(id[2]);
	}
}

function CountPercentage(){
	var total_amount = parseFloat(document.getElementById('rec_amount').value);
	var commission = parseFloat(document.getElementById('commission_given').value);
	
	if(isNaN(total_amount)) total_amount = 1;
	if(isNaN(commission)) { commission = 0; document.getElementById('commission_given').value = 0; }
	
	var percentage = 100*commission/total_amount;
	document.getElementById('commission_ratio').value = percentage.toFixed(2);
}

function CountAmount(){
	var total_amount = parseFloat(document.getElementById('rec_amount').value);
	var perc = parseFloat(document.getElementById('commission_ratio').value);
	
	if(isNaN(total_amount)) total_amount = 1;
	if(isNaN(perc)) { perc = 0; document.getElementById('commission_ratio').value = 0; }
	
	var amount = total_amount*perc/100;
	document.getElementById('commission_given').value = amount.toFixed(2);
}

function string_replace(haystack, find, sub) {
    return haystack.split(find).join(sub);
}


/**
 * function convert money into words
 * from http://www.dotnetspider.com/resources/20983-Javascript-function-convert-amount-words.aspx
 */
function amtInWords(decAmount)
 {
 	var sUnits=new Array(20);
 	var sTens=new Array(8);
 	var sHundreds=new Array(6);
 	var sAmount;
 	var i,iLenAmount,iDecPart,iIntegerPart;

 	sUnits[1]  = '';
 	sUnits[2]  = 'One';
 	sUnits[3]  = 'Two';
 	sUnits[4]  = 'Three';
 	sUnits[5]  = 'Four';
 	sUnits[6]  = 'Five';
 	sUnits[7]  = 'Six';
 	sUnits[8]  = 'Seven';
 	sUnits[9]  = 'Eight';
 	sUnits[10] = 'Nine';
 	sUnits[11] = 'Ten';
 	sUnits[12] = 'Eleven';
 	sUnits[13] = 'Twelve';
 	sUnits[14] = 'Thirteen';
 	sUnits[15] = 'Fourteen';
 	sUnits[16] = 'Fifteen';
 	sUnits[17] = 'Sixteen';
 	sUnits[18] = 'Seventeen';
 	sUnits[19] = 'Eighteen';
 	sUnits[20] = 'Ninteen';
 	sTens[1]   = 'Twenty';
 	sTens[2]   = 'Thirty';
 	sTens[3]   = 'Forty';
 	sTens[4]   = 'Fifty';
 	sTens[5]   = 'Sixty';
 	sTens[6]   = 'Seventy';
 	sTens[7]   = 'Eighty';
 	sTens[8]   = 'Ninety';
 	sHundreds[1] = 'Hundred';
 	sHundreds[2] = 'Thousand';
 	sHundreds[3] = 'Lac';
 	sHundreds[4] = 'Crore';
 	sHundreds[5] = 'Arab';
 	sHundreds[6] = 'Kharab';

 	if (decAmount == 10000000000000)
 	{
 		decAmount = 9999999999999.99;
 	}
 	if (decAmount  == 0)
 	{
 		return "";
 	}

 	iDecPart = (decAmount -  Math.round(decAmount)) * 100;
 	iDecPart=Math.round(iDecPart);
 	
 	//Because Math.round results .50,.52,.53.......98,.99 in negative values

 	if(iDecPart<0)
 	{
 		iDecPart=100+iDecPart;
 	}

 	if( iDecPart == 0)
 	{
 		decAmount = decAmount;
 	}
 	else
 	{
 		decAmount =Math.round(decAmount - (iDecPart/100));
 	}
 	
 	iLenAmount = ((String)(decAmount)).length;

 	if (iLenAmount == 1)
 	{
 		var index=parseInt(decAmount)+1;
 		sAmount = sUnits[index];
 	}
 	else	
 	{
 		for(i=iLenAmount;i>0;i--)
 		{
 			if (i==13 || i==12)
 			{
 				iIntegerPart = parseInt(decAmount/100000000000);
 				decAmount = parseInt(decAmount % 100000000000);
 				if(iIntegerPart==0)
 				{
 					sAmount = sAmount;
 				}
 				else
 				{
 					if(iIntegerPart<20)
 					{
 						sAmount = sUnits[iIntegerPart + 1] +" "+ sHundreds[6]+" ";
 					}
 					else
 					{
 					  sAmount = sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[6]+" "
 					}
 				}
 			}
 			else if (i==11 || i==10)
 			{
 				iIntegerPart = parseInt(decAmount/1000000000);
 				decAmount = parseInt(decAmount % 1000000000);
 				if(iIntegerPart==0)
 				{
 					sAmount = sAmount;
 				}
 				else
 				{
 					if(iIntegerPart<20)
 					{
 						if(sAmount == null)
 						{
 							sAmount = sUnits[iIntegerPart + 1] +" "+ sHundreds[5]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sUnits[iIntegerPart + 1] +" "+ sHundreds[5]+" ";
 						}
 					}
 					else
 					{
 						if(sAmount == null)
 						{
 							sAmount = sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[5]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[5]+" ";
 						}
 					}
 				}
 			}
 			else if (i==9 || i==8)
 			{
 				iIntegerPart = parseInt(decAmount/10000000);
 				decAmount = parseInt(decAmount % 10000000);
 				if(iIntegerPart==0)
 				{
 				  sAmount = sAmount;
 				}
 				else
 				{
 					if(iIntegerPart<20)
 					{
 						if(sAmount == null)
 						{
 							sAmount = sUnits[iIntegerPart + 1] +" "+ sHundreds[4]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sUnits[iIntegerPart + 1] +" "+ sHundreds[4]+" ";
 						}
 					}
 					else
 					{
 						if(sAmount == null)
 						{
 							  sAmount = sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[4]+" ";
 						}
 						else
 						{
 							  sAmount = sAmount+" "+sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[4]+" ";
 						}
 					}
 				}
 			}
 			else if(i==7 || i==6)
 			{
 				iIntegerPart = parseInt(decAmount/100000);
 				decAmount = (decAmount % 100000);
 				if(iIntegerPart==0)
 				{
 					sAmount = sAmount;
 				}
 				else
 				{
 					if(iIntegerPart < 20)
 					{
 						if(sAmount == null)
 						{
 							sAmount =sUnits[iIntegerPart + 1]+" "+ sHundreds[3]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sUnits[iIntegerPart + 1]+" "+ sHundreds[3]+" ";
 						}
 					}
 					else
 					{
 						if(sAmount == null)
 						{
 							sAmount = sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[3]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1] +" "+ sHundreds[3]+" ";
 						}
 					}
 				}
 			}
 			else if(i==5 || i==4)
 			{
 				iIntegerPart = parseInt(decAmount/1000);
 				decAmount = (decAmount % 1000);
 				if(iIntegerPart==0)
 				{
 					sAmount = sAmount;
 				}
 				else
 				{
 					if(iIntegerPart < 20)
 					{
 						if(sAmount == null)
 						{
 							sAmount = sUnits[iIntegerPart + 1]+" "+ sHundreds[2]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sUnits[iIntegerPart + 1]+" "+ sHundreds[2]+" ";
 						}
 					}
 					else
 					{
 						if(sAmount == null)
 						{
 							sAmount = sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1]+" "+ sHundreds[2]+" ";
 						}
 						else
 						{
 							sAmount = sAmount+" "+sTens[parseInt(iIntegerPart/10) - 1] +" "+ sUnits[(iIntegerPart - parseInt(iIntegerPart/10)*10) + 1]+" "+ sHundreds[2]+" ";
 						}
 					}
 				}
 			}
             else if(i==3)
 			{
 				iIntegerPart = parseInt(decAmount/100);
 				decAmount = (decAmount % 100);
 				if(iIntegerPart==0)
 				{
 					sAmount = sAmount;
 				}
 				else
 				{
 					var index;
 					index=parseInt(iIntegerPart)+1;
 					if (sAmount == null)
 					{
 						sAmount = sUnits[index] +" "+ sHundreds[1]+" ";
 					}
 					else
 					{
 						sAmount = sAmount+" "+sUnits[index] +" "+ sHundreds[1]+" ";
 					}
 				}
 			}
 			else if(i==2)
 			{
 				decAmount=parseInt(eval(decAmount));
 				if(decAmount<20)
 				{
 					var index=parseInt(decAmount)+1;
 					if (sAmount == null)
 					{
 						sAmount = sUnits[index];
 					}
 					else
 					{
 						sAmount = sAmount+" "+sUnits[index];
 					}
 				}
 				else
 				{
 					var a=parseInt(((decAmount/10) - 1));
 					var b=(decAmount%10) + 1;
 					if (sAmount == null)
 					{
 						sAmount = sTens[a] +" "+ sUnits[b];
 					}
 					else
 					{
 						sAmount = sAmount+" "+sTens[a] +" "+ sUnits[b];
 					}
 				}	
 			}
 		}
 	}
 	
 	if(iDecPart==0)
 	{
 		//sAmount = "Rs. " + sAmount;
 		sAmount = sAmount;
 	}
 	else if(sAmount=="")
 	{
 		//sAmount = "Paise ";
 		sAmount = '0';
 	}
 	else
 	{
 		//sAmount = "Rs. "+sAmount+" And Paise";
 	}

 	if(iDecPart < 20)
 	{
 		sAmount = sAmount+" "+sUnits[iDecPart + 1]+" ";
 		
 	}
 	else
 	{
 		var fi = parseInt(((iDecPart/10) - 1));
 		var fii = parseInt((iDecPart % 10))+1;
 		sAmount = sAmount+"+ "+sTens[fi] +" "+ sUnits[fii];
 	}
 	
         //sAmount = sAmount + " Only";

         return sAmount;
 	
 }

/* calender */
function calDate(addr)
{
	window.location.href = addr;
}

/*show last selected option of a <select> box?*/
function showLastPack(opt, val)
{
	if(!confirm("Do you really want to modify the package?")){
		opt.selectedIndex = val-1;
		return false;
	}
}
/*show last selected option of a <select> box?*/
function showLastTemp(opt, val)
{
	if(!confirm("Do you really want to change the template?")){
		opt.selectedIndex = val-1;
		return false;
	}
}
/*show last selected option of a <select> box?*/
function showLastStatus(opt, val)
{
	if(!confirm("Do you really want to change the status, inactive status will make site inactive?")){
		opt.selectedIndex = val;
		return false;
	}
}