// JavaScript Document

//modified  by   : Srinivas
//Description  : Common js functions
//Dated        : 16-02-2008    

function loaddiv()
{
	// loading div
	window.scrollTo(0,0);
	var loading_box = document.createElement('div');
	//var loading_text = document.createTextNode('');
	loading_box.className = "map_loading";
	loading_box.id = "map_loading_box";
	
	//loading_box.appendChild(loading_text);
	loading_box.style.left = '0px';
	var width = "1000px";
	var height = "800px";
	
	if (navigator.appName=="Netscape") {
		if (document.body && typeof(document.body.offsetHeight) == 'number')
		{
		  height = document.body.offsetHeight;
		  width = document.body.offsetWidth;
		}
		else if (typeof(window.innerHeight) == 'number')
		{
		  height = window.innerHeight;
		  width = window.innerWidth;
		}
		width = width+'px';
  		height = height+'px';
	 }
	 else if (navigator.appName.indexOf("Microsoft")!=-1) {
 		width = (document.body.clientWidth)+'px';
		height = document.body.clientHeight+'px';
	 }
	 else if(navigator.appName == "Opera") {
   		width = (window.innerWidth)+'px';
		height = window.innerHeight+'px';
	}
	loading_box.style.width = width;
	loading_box.style.top = '0px';
	loading_box.style.height = height;
	loading_box.innerHTML = '<table width="'+width+'" align="center"><tr><td style="font-family: Arial, Verdana, Helvetica; color:#000000; FONT-WEIGHT: bold; FONT-SIZE: 25px;" valign="middle" align="center">&nbsp;</td></tr></table>';
	document.body.appendChild(loading_box);
	// end
}
//function to chk whether given given text field is empty or not
function isValidEntry(element,msg) 
{
  
   if(element.value.length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}
	return true;
} // closing the function isValidEntry()

function fnCheck_Phone(e)
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode != 45 && e.keyCode < 47 && e.keyCode!=8 && e.keyCode!=55) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which != 45 && e.which < 47 && e.which!=8 && e.which!=55) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}

//function to chk for valid URL
function isValidURL(element, msg, required)
{
	if(element.value == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if(element.value != "")
	{
		// if (!(/^[www]\w+([\.-]?\w+)*(\.\w{2,3}.*/i.test(element.value)))))
		var oRegExp = /[^:]+:\/\/[^:\/]+(:[0-9]+)?\/?.*/;
		if (!oRegExp.test(element.value))
		{
			alert('\r\n The URL you have entered is invalid.\n Please check it for accuracy.');
			element.focus();
			element.select();
			return false;
		}
	}
	return true;
}



//function to chk for valid email
function isValidEmail(VarEmail)
{
		if(VarEmail.value == "" || VarEmail.length == 0)
		{
			alert("Please enter Email Address");
			VarEmail.focus();
			return false;
		}	

		if(VarEmail.value!="")
        {

			if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(VarEmail.value)))
			{
				alert("Invalid Email address!")
				VarEmail.focus();
				return false;
			}
        } 
		return true;
}

function check_phonenum(e)/// validation to enter only numbers
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8  && e.keyCode!=45) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which < 47 && e.keyCode!=8  && e.keyCode!=45) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}


function check_alpha1(e)/// validation to enter only numbers
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which < 47 && e.keyCode!=8) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}
function isValidSelect2(element,msg) 
{
		
	if(element.value == "-1") 
	{
		alert("Please select "+msg+" from the list");
		element.focus();
		return false;
	}
	return true;
}


function checknum(e)// validation to enter only alphabets
{
	if(window.event)
	{
		if((e.keyCode>32 && e.keyCode<=64) ||  (e.keyCode>=91 && e.keyCode<=95) 
		|| (e.keyCode==96) || (e.keyCode>=123 && e.keyCode<=127)) 
		return false;
	}//if
	else if(e.which)
	{
		if((e.which>32 && e.which<=64) ||  (e.which>=91 && e.which<=95) 
		|| (e.which==96) || (e.which>=123 && e.which<=127)) 
		return false;
	}//else if
	return true;
}
/*
3. SELECT VALIDATION

Usage:
Element  name of the control, like frm.firstname
Message  Field Name that we want to display in alert message.

if(!isValidSelect(frm.country,'Country'))
return;
*/
function isValidSelect(element,msg) 
{
	if(element.value == "-1" || element.value == "" || element.value == 0) 
	{
		alert("Please select "+msg+" from the list");
		element.focus();
		return false;
	}
	return true;
}


function isValidSelect1(element,msg) 
{
	if(element == "-1" || element == "" || element == 0) 
	{
		alert("Please select "+msg+" from the list");
		element.focus();
		return false;
	}
	return true;
}

/*

4. PHONE NUMBER VALIDATION
Usage: 
Element  name of the control, like frm.phone
Message  Field Name that we want to display in alert message.
Required  Set this to yes if the field is mandatory, otherwise no.

 if(!isValidPhone(frm.phone,'Phone Number','yes'))
 return;
*/
function isValidPhone(element, msg, required)
{	
	var VarPhone = element.value;
	if (VarPhone== "")
	{	
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarPhone != "")
	{
		var Phno;
		Phno=VarPhone;
		var valid = "-0123456789()";
		var hyphencount = 0;
		for (var i=0; i < Phno.length; i++) 
		{
			temp = "" + Phno.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
				alert("Invalid characters in your "+msg+". Please try again.");
				element.focus();
				return false;
			}
		}
     } 
	 return true;      
}


/// validation to enter only numbers and (.)period for price
function check_price(e)
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8 && e.keyCode!=46) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which < 47 && e.which!=8 && e.which!=46) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}



//function to show the hand cursor for the image n buttons
//Page : ho_registration.php
function fnShowHand(frm,ctrl_id)
{
	var Cursor='hand';

	if (!document.all){ Cursor='pointer'; }
	
	//for mouseover
	
	document.getElementById(ctrl_id).style.cursor=Cursor;	
}


//function to show the hand cursor for the image
//Page : ho_registration.php
function fnRemoveHand(frm,ctrl_id)
{
	var Cursor='hand';

	if (!document.all){ Cursor='pointer'; }
	
	//for mouseout
	
	document.getElementById(ctrl_id).style.cursor='default';	
}

// function to trim leading & trailing spaces
function trim(strText) { 
    // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' ') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);

   return strText;
} 


//Function to goto next when <ENTER> key is pressed
function fnGoto_Next(from_field,to_field,num_char)
{
	if(from_field.value.length == num_char)
		to_field.focus();
	return true;
}



/*
2. NUMBER VALIDATION
Usage:
Element  name of the control, like frm.number
Message  Field Name that we want to display in alert message.
Required  Set this to yes if the field is mandatory, otherwise no.

 if(!isValidNumber(frm.num,'Roll Number','yes'))
 return;
*/
function isValidNumber(element, msg, required)
{  
	var VarNumber = element.value;
	if(VarNumber == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarNumber != "")
	{
		var Num;
		Num=VarNumber;
		var valid = "0123456789";
		var hyphencount = 0;
		
		for (var i=0; i < Num.length; i++) 
		{
			temp = "" + Num.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
			  alert("Invalid characters in your "+msg+".  Please try again.");
			  element.focus();
			  return false;
			}
	   } // end for loop
	   
		if(VarNumber < 1)
		{
			alert(msg+" is not a valid number");
			element.focus();
			return false;
		}
    }   // end if
    return true; 
}  // end function
//zip code
function isValidZip(element, msg, required)
{  
	var VarNumber = element.value;
	if(VarNumber == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarNumber != "")
	{
		var Num;
		Num=VarNumber;
		var valid = "0123456789";
		var hyphencount = 0;
		
		for (var i=0; i < Num.length; i++) 
		{
			temp = "" + Num.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
			  alert("Invalid characters in your "+msg+".  Please try again.");
			  element.focus();
			  return false;
			}
	   } // end for loop
	  
		if(VarNumber.length < 3)
		{
			alert(msg+" is not a valid Zip");
			element.focus();
			return false;
		}
		if(VarNumber.length > 5)
		{
			alert(msg+" is not a valid Zip");
			element.focus();
			return false;
		}
		
    }   // end if
    return true; 
}  // end function
//enter only digits
function check_alpha1(e)/// validation to enter only numbers
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which < 47 && e.which!=8) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}

                                         
//function to allow only alphanumeric values
function checknum(e)
{
	if(window.event)
	{
		if((e.keyCode>32 && e.keyCode<=64) ||  (e.keyCode>=91 && e.keyCode<=95) 
		|| (e.keyCode==96) || (e.keyCode>=123 && e.keyCode<=127)) 
		return false;
	}//if
	else if(e.which)
	{
		if((e.which>32 && e.which<=64) ||  (e.which>=91 && e.which<=95) 
		|| (e.which==96) || (e.which>=123 && e.which<=127)) 
		return false;
	}//else if
	return true;
}



//Purpose : validate the job posting by home owner
//Page : recv_free_est.php
function fnValidate_PostJob(frm)
{
	var msg = "";
	var ctrl_id = "";
	
	//MainCat
	if(frm.job_cat_id.value == -1)
	{
		msg+= "Please select job category\n";	
		ctrl_id = "job_cat_id";
	}
	
	//SubCat
	if(frm.job_scat_id.value == -1)
	{
		if(msg == "")
			ctrl_id = "job_scat_id";
		msg+= "Please select service required\n";	

	}


	//Project budget
	if(frm.job_proj_budget.value == -1)
	{
		if(msg == "")
			ctrl_id = "job_proj_budget";
		msg+= "Please select project budget\n";	
	}


	//chk whether first name no. is entered or not	
	if(frm.ho_fname.value == ""  || frm.ho_fname.value.length==0)
	{
		if(msg == "")
			ctrl_id = "ho_fname";
		msg+= "Please enter your first name\n";	
	}


	//chk whether last name no. is entered or not	
	if(frm.ho_lname.value == ""  || frm.ho_lname.value.length==0)
	{
		if(msg == "")
			ctrl_id = "ho_lname";
		msg+= "Please enter your last name\n";	
	}


	//chk whether address is entered or not	
	if(frm.txtAddr1.value == ""  || frm.txtAddr1.value.length==0)
	{
		if(msg == "")
			ctrl_id = "txtAddr1";
		msg+= "Please enter your contact address\n";	
	}

	//chk whether city is entered or not	
	if(frm.ho_city.value == ""  || frm.ho_city.value.length==0)
	{
		if(msg == "")
			ctrl_id = "ho_city";
		msg+= "Please enter your city name\n";	
	}
	
	//select State
	if(frm.ho_state.value == -1)
	{
		if(msg == "")
			ctrl_id = "ho_state";
		msg+= "Please select your state\n";	
	}

	//Postal Code
	if(frm.ho_postalcode.value == ""  || frm.ho_postalcode.value == "0" || frm.ho_postalcode.value.length==0)
	{
		if(msg == "")
			ctrl_id = "ho_postalcode";
		msg+= "Please enter postal code\n";	
	}

	//chk whether email is entered or not	
	if(frm.ho_email.value == ""  || frm.ho_email.value.length==0)
	{
		if(msg == "")
			ctrl_id = "ho_email";
		msg+= "Please enter your email address\n";	
	}
	
	//chk whether valid email is entered or not
	if(frm.ho_email.value!="")
	{
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(frm.ho_email.value)))
		{
			if(msg == "")
				ctrl_id = "ho_email";
			msg+="Invalid Email address!\n";
		}
	}//end of validating email id
	
	//chk whether first phone no. is entered or not	
	if(frm.txtDPhone1.value == "" || frm.txtDPhone1.value == 0 || frm.txtDPhone1.value.length==0)
	{
		if(msg == "")
			ctrl_id = "txtDPhone1";
		msg+= "Please enter area code for your Phone no.\n";	
	}
		
	//chk whether 2nd phone no. is entered or not	
	if(frm.txtDPhone2.value == "" || frm.txtDPhone2.value == 0 || frm.txtDPhone2.value.length==0)
	{
		if(msg == "")
			ctrl_id = "txtDPhone2";
		msg+= "Please enter prefix for your Phone no.\n";	
	}
		
	//chk whether 3rd phone no. is entered or not	
	if(frm.txtDPhone3.value == "" || frm.txtDPhone3.value == 0 || frm.txtDPhone3.value.length==0)
	{
		if(msg == "")
			ctrl_id = "txtDPhone3";
		msg+= "Please enter last 4 digits for your Phone no.\n";	
	}

	//Terms
	if(frm.chkTerms.checked==false)
	{
		if(msg == "")
			ctrl_id = "chkTerms";
		msg+= "Please check the Terms";	
	}
	
	if(msg!= "")
	{
		alert(msg);
		frm.elements[ctrl_id].focus();
		return false;
	}
	else
	{
		frm.est_act.value = "post_job"	
		frm.submit();
	}

}


//

