function getNumOfDaysPerMonth(intYear, intMonth) {
    return 32 - new Date(intYear, intMonth, 32).getDate();
}

function d(id){
	return document.getElementById('' + id + '');
}

function showHandleSuccessMsg(sMsg){
	return '<div align="center" style="border:1px solid red; margin-bottom:5px; padding: 3px;">' + sMsg + '</div>';
}

function showHandleFailureMsg(sMsg){
	return '<div align="center" style="border:1px solid red; margin-bottom:5px; padding: 3px;"><div style="float:left"><img src="/images/icons/warning.png"></div><strong>The following errors appeared:</strong><br><font color=red>' + sMsg + '</font><br><br></div>';
}



function IsNumeric(sText){
	
   if (sText == ''){return false}
   
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}


function textCounter(field, countfield, maxlimit)
{
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	else 
  		countfield.value =  field.value.length;
}


// SEE jsDate.js !!!

//function DateDiff(y1, m1, d1, y2, m2, d2) {

	//var startdate=new Date(y1, m1-1, d1); //Month is 0-11 in JavaScript (yyyy, mm-1, dd)
	////var today=new Date()
	//var enddate=new Date(y2, m2-1, d2)
	////Get 1 day in milliseconds
	//var one_day=1000*60*60*24
		
	////Calculate difference btw the two dates, and convert to days	
	//return Math.ceil((enddate.getTime()-startdate.getTime())/(one_day));

     /*datDate1= Date.parse(d1 + '-' + m1 + '-' + y1);
     datDate2= Date.parse(d2 + '-' + m2 + '-' + y2);
	 alert((datDate2-datDate1)/(24*60*60*1000));
     return (datDate2-datDate1)/(24*60*60*1000);
	 */
	 
/*  date1 = m1 + '-' + d1 + '-' + y1;
  date2 = m2 + '-' + d2 + '-' + y2;
  date1 = date1.split("-");
  date2 = date2.split("-");
  var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
  var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
  var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
  alert(daysApart);
  return daysApart;
  */
//}

function MssqlDateFormat(y,m,d) {
	if ((y!='') || (m!='') || (d!='')) {
		return y + '-'+ m + '-' + d
	}
	return '';
}

function formatCurrency(num)
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '' + num + '.' + cents);
}

function PopupRentDoc(url) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(url, '" + id + "', 'toolbar=0,scrollbars=Yes,location=0,statusbar=0,menubar=0,resizable=1,width=760,height=760,left=232,top=120');");
}

function PopupCalendar(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=Yes,location=0,statusbar=0,menubar=0,resizable=Yes,width=480,height=650,left=232,top=160');");
}

/*************************************************************
* CLEARFORM
* purpose: clear form elements values
*/
function ClearForm(formname){
	var len = len = formname.elements.length;
	var i = 0;
	for (i = 0 ; i < len ; i++){
		if ((formname.elements[i].getAttribute('type') != "button") && (formname.elements[i].getAttribute('type') != "submit")){
			formname.elements[i].value='';
		}
	}
}

/*************************************************************
* ADDSECURITYDEPOSIT
* purpose: add dynamically html elements [Security Deposit deduction names]
*/
function AddSecurityDeposit(name, val) {
  if (arguments.length == 0) {
	  name = '';
	  val = '';
  };
  var ni1 = document.getElementById('SecurityDepositDiv');
  var ni2 = document.getElementById('SecurityDepositValuesDiv');

  var el1 = document.createElement('input');
  el1.setAttribute('type', "text");
  el1.setAttribute('name', "security");

  var el2 = document.createElement('input');
  el2.setAttribute('type', "text");
  el2.setAttribute('name', "svalue");
  //el2.setAttribute('id', "svalue");  
  //document.getElementById('SecurityDepositReturned').value += val;
  

  var rnd = Math.round(10000*Math.random());

  var rem_link_id = "remove_security_" + rnd;
  
  var el_id1 = "security_" + rnd;
  var br_id1 = "br_security_" + rnd;

  var el_id2 = "svalue_" + rnd;
  var br_id2 = "br_svalue_" + rnd;
  
  el1.setAttribute('id', el_id1);
  el1.setAttribute('size', "15");
  el1.setAttribute('value', name);
  el1.setAttribute('maxlength', "50");
  el1.setAttribute('class', "rental");
  ni1.appendChild(el1);

  el2.setAttribute('id', el_id2);
  el2.onchange = function(){ this.value = formatCurrency(this.value); CalcSecurityDepositReturned() };
  el2.setAttribute('size', "8");
  el2.setAttribute('value', formatCurrency(val));
  el2.setAttribute('maxlength', "20");
  el2.setAttribute('class', "rental");
  ni2.appendChild(el2);

  var del = document.createElement('a');
  del.setAttribute('id', rem_link_id);
  del.setAttribute('class', 'rental');
  //del.setAttribute('style', 'background-image:url(../images/icons/icoRemove.gif);width:13; height:12');
  //del.setAttribute('href', "javascript:RemoveSecurityDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\"); CalcSecurityDepositReturned();");
  del.setAttribute('href', "#");
  //del.onclick = function() { "RemoveSecurityDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\"); CalcSecurityDepositReturned();" };
  del.setAttribute('onclick', "RemoveSecurityDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\"); CalcSecurityDepositReturned();");
  //del.innerHTML = "<img src=\"../images/icons/icoRemove.gif\" alt=\"remove\" border=\"0\">";
  del.innerHTML = "remove";
  ni2.appendChild(del);

  //var del = document.createElement('img');
  //del.setAttribute('id', rem_link_id);
  //del.setAttribute('width', '13');
  //del.setAttribute('height', '12');
  //del.setAttribute('src', '../images/icons/icoRemove.gif');
  //del.setAttribute('onClick', "javascript:RemoveSecurityDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\")");
  //ni2.appendChild(del);


  var br1 = document.createElement('br');
  br1.setAttribute('id', br_id1);
  ni1.appendChild(br1);

  var br2 = document.createElement('br');
  br2.setAttribute('id', br_id2);
  ni2.appendChild(br2);
}

/*************************************************************
* ADD SECURITY DEPOSIT VALUE
* purpose: add dynamically html elements [Security Deposit deduction values]
*/
/*
function AddSecurityDepositValue(val) {
  if (arguments.length == 0) {val = '';};
  var ni = document.getElementById('SecurityDepositValuesDiv');

  var el = document.createElement('input');
  el.setAttribute('type', "text");
  el.setAttribute('name', "svalue");
  
  var rnd = Math.round(10000*Math.random());
  var el_id = "svalue_" + rnd;
  var rem_link_id = "remove_svalue_" + rnd;
  var br_id = "br_svalue_" + rnd;
  
  el.setAttribute('id', el_id);
  el.setAttribute('size', "8");
  el.setAttribute('value', val);
  el.setAttribute('maxlength', "20");
  el.setAttribute('class', "rental");
  ni.appendChild(el);

  var del = document.createElement('a');
  del.setAttribute('id', rem_link_id);
  del.setAttribute('href', "javascript:RemoveSecurityDeposit(\"" + el_id + "\", \"" + rem_link_id + "\", \"" + br_id + "\")");
  del.innerHTML = "<img src=\"images/icons/icoRemove.gif\" border=\"0\">";
  ni.appendChild(del);

  var br = document.createElement('br');
  br.setAttribute('id', br_id);
  ni.appendChild(br);
}
*/
/*************************************************************
* REMOVE SECURITY DEPOSIT VALUE
* purpose: remove dynamically created html elements [Security Deposit deductions]
*/

function RemoveSecurityDeposit(SecurityId1, SecurityId2, RemLinkId, BrId1, BrId2) {

  var d1 = document.getElementById('SecurityDepositDiv');
  var d2 = document.getElementById('SecurityDepositValuesDiv');
  
  var el1 = document.getElementById(SecurityId1);
  d1.removeChild(el1);
  
  var el2 = document.getElementById(SecurityId2);
  d2.removeChild(el2);
  
  var rem_link_id = document.getElementById(RemLinkId);
  d2.removeChild(rem_link_id);

  var br_id1 = document.getElementById(BrId1);
  d1.removeChild(br_id1);

  var br_id2 = document.getElementById(BrId2);
  d2.removeChild(br_id2);
}



/*************************************************************
* ADD PET DEPOSIT
* purpose: add dynamically html elements [Pet Deposit deduction names]
*/
function AddPetDeposit(name, val) {
  if (arguments.length == 0) {
	  name = '';
	  val = '';
  };
  var ni1 = document.getElementById('PetDepositDiv');
  var ni2 = document.getElementById('PetDepositValuesDiv');

  var el1 = document.createElement('input');
  el1.setAttribute('type', "text");
  el1.setAttribute('name', "pet");

  var el2 = document.createElement('input');
  el2.setAttribute('type', "text");
  el2.setAttribute('name', "pvalue");

  var rnd = Math.round(10000*Math.random());

  var rem_link_id = "remove_pet_" + rnd;
  
  var el_id1 = "pet_" + rnd;
  var br_id1 = "br_pet_" + rnd;

  var el_id2 = "pvalue_" + rnd;
  var br_id2 = "br_pvalue_" + rnd;
  
  el1.setAttribute('id', el_id1);
  el1.setAttribute('size', "15");
  el1.setAttribute('value', name);
  el1.setAttribute('maxlength', "50");
  el1.setAttribute('class', "rental");
  ni1.appendChild(el1);

  el2.setAttribute('id', el_id2);
  el2.onchange = function(){ this.value = formatCurrency(this.value); CalcPetDepositReturned() };
  el2.setAttribute('size', "8");
  el2.setAttribute('value', formatCurrency(val));
  el2.setAttribute('maxlength', "20");
  el2.setAttribute('class', "rental");
  ni2.appendChild(el2);

/*
  var del = document.createElement('a');
  del.setAttribute('id', rem_link_id);
  del.setAttribute('class', 'rental');
  del.setAttribute('href', '#');
  del.setAttribute('onclick', "RemovePetDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\"); CalcPetDepositReturned();");
  del.innerHTML = "remove"
  ni2.appendChild(del);
*/
  var del = document.createElement('a');
  del.setAttribute('id', rem_link_id);
  del.setAttribute('class', 'rental');
  del.setAttribute('href', "#");
  del.setAttribute('onclick', "RemovePetDeposit(\"" + el_id1 + "\", \"" + el_id2 + "\", \"" + rem_link_id + "\", \"" + br_id1 + "\", \"" + br_id2 + "\"); CalcPetDepositReturned();");
  del.innerHTML = "remove"
  ni2.appendChild(del);


  var br1 = document.createElement('br');
  br1.setAttribute('id', br_id1);
  ni1.appendChild(br1);

  var br2 = document.createElement('br');
  br2.setAttribute('id', br_id2);
  ni2.appendChild(br2);
}

/*************************************************************
* REMOVE PET DEPOSIT VALUE
* purpose: remove dynamically created html elements [Pet Deposit deductions]
*/

function RemovePetDeposit(PetId1, PetId2, RemLinkId, BrId1, BrId2) {

  var d1 = document.getElementById('PetDepositDiv');
  var d2 = document.getElementById('PetDepositValuesDiv');
  
  var el1 = document.getElementById(PetId1);
  d1.removeChild(el1);
  
  var el2 = document.getElementById(PetId2);
  d2.removeChild(el2);
  
  var rem_link_id = document.getElementById(RemLinkId);
  d2.removeChild(rem_link_id);

  var br_id1 = document.getElementById(BrId1);
  d1.removeChild(br_id1);

  var br_id2 = document.getElementById(BrId2);
  d2.removeChild(br_id2);
}


function IsValidEmail(sEmail){	
	//var filter=/^.+@.+\..{2,3}$/;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(sEmail)) return true;
}

function lock() {
	formName = document.forms[0];

	if (document.all || document.getElementById) {

		var formElement;

		for (i = 0; i < formName.length; i++) {
			formElement = formName.elements[i];
			if (formElement!=null || formElement!="") formElement.disabled = true;

			if ((formName.elements[i].getAttribute('type') == "button") || (formName.elements[i].getAttribute('type') == "submit")) {
				formName.elements[i].style.display='none';
			}
			
		}
		
		var a = document.forms[0].getElementsByTagName("A");
		for(var i=0;i<a.length;i++){
			if (a[i].name.substr(0,6) == 'anchor') a[i].style.display='none';
		}

	}
}


function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}


function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function SetSelectValue(SelectId, Value) {
	//eval('SelectObject = document.' + SelectName + ';');
	SelectObject = document.getElementById(SelectId);
	for (index = 0; index < SelectObject.length; index++) {
		if (SelectObject[index].value == Value) SelectObject.selectedIndex = index;
	}
}


function formatCurrencyToMssql(val) {
	return val.replace(/,/g, '');
}

function popup(url, width, height) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(url, '" + id + "', 'toolbar=0,scrollbars=Yes,location=0,statusbar=0,menubar=0,resizable=Yes,width='+width+',height='+height);");
}


// convert the content of the form into a GET string
// only text, checkbox, radio, select, textarea, hidden, password are processed.
function parseForm(formObj) {
	
	var getstr = "";

	for (i = 0; i < formObj.elements.length; i++) {
		var ele = formObj.elements[i];
		if (ele.tagName == "INPUT") {
			if (ele.type == "text" || ele.type == "hidden" || ele.type == "password") {
				getstr += ele.name + "=" + encodeURI(ele.value) + "&";
			}
			if (ele.type == "checkbox") {
				if (ele.checked) {
						getstr += ele.name + "=" + encodeURI(ele.value) + "&";
				} else {
						getstr += ele.name + "=&";
				}
			}
			if (ele.type == "radio") {
				if (ele.checked) {
						getstr += ele.name + "=" + encodeURI(ele.value) + "&";
				}
			}
		}
		if (ele.tagName == "SELECT") {
			var sel = ele;
			if (sel.multiple) {
				for (optionIndex = 0; optionIndex < sel.options.length; optionIndex++) {
					var opt = sel.options[optionIndex];
					if (opt.selected) {
						getstr += sel.name + "=" + encodeURI(opt.value) + "&";
					}
				}
			} else {
				if (sel.selectedIndex >= 0) {
					getstr += sel.name + "=" + encodeURI(sel.options[sel.selectedIndex].value) + "&";
				} //following the convention of a normal form submit, if nothing selected, do not include this select item
			}
		}
		if (ele.tagName == "TEXTAREA") {
			getstr += ele.name + "=" + encodeURI(ele.value) + "&";
		}
	}

	return getstr;
}
