/********************************************
PROJECT NAME	: 
PURPOSE 		: JS FUNCTIONS USED IN GENERAL	
VERSION			: 1.0
DATE			: 
AUTHOR			: 

FUNCTION EMPTY AND VALID CHARACTER
USAGE:
	element – name of the control like frm.password.
	Msg – Field Name that we want to display in alert message.
********************************************/
function createXMLHttpRequest() {
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	try { return new XMLHttpRequest(); } catch(e) {}
	alert("XMLHttpRequest not supported");
	return null;
}
var xhReq = createXMLHttpRequest();	  
var xhReq2 = createXMLHttpRequest();
var xhReq3 = createXMLHttpRequest();
// 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 fnValidname(element,msg)
{
//	alert(element.val());
	if(element.val().length == 0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}//if
	else
	{
		if(element.val().length < 6)
		{
			alert(msg+" should be minimum 6 characters !");
			element.focus();
			return false;
		}
		var reg = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
//		var regspan = new RegExp("^[ÁÉÍÓÚÑÜáéíóúñü¿¡«»€][ÁÉÍÓÚÑÜáéíóúñü¿¡«»€]+$");
		if(!element.val().match(reg))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}	
	}//else
	return true;
}//// ispassword function



//function to accept only letters(names)
function fnOnlyLetters(element,msg)
{
	if(element.val().length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}//// if
	else
	{
		var regname = new RegExp("^[a-zA-Z]+[a-zA-Z ]+$");
		if(!(element.val().matdch(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}//// function IsValid() closed

///// ACCEPTS FIELD CONTAINING SPACES,LETTERS AND DIGITS
function fnUserName(element,msg)
{
	if(element.val().length == 0)
	{
		alert(msg + " Should not be left empty");
		element.focus();
		return false;
	}//// if
	else
	{
		var regname = new RegExp("^[a-zA-Z0-9. ]+$");
		if(!(element.val().match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}//// function IsEmpty() closed

///// WON'T ACCEPT FIELD CONTAINING SPACES
function fnNoSpaces(element,msg)
{
	if(element.val().length==0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}//// if
	else
	{
//		var regname = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€]+$");
		var regname = new RegExp("^[ áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
		if(!(element.val().match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}///// function IsEmpty3() closed

//CHECK WHETHER FIELD IS EMPTY OR NOT
function isValidEntry(element,msg)
{
	if(element.val().length == 0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}//// if
	return true;
}//// function IsEmpty4() closed

/*function isValidNumber(element,msg)
{
	//alert(element.val());
	if(element.val().length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}///if 
	else
	{
		var regnum = new RegExp("^[0-9]");
		if(!(element.val().match(regnum)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}		
	}/// else closed
	return true;
} //// function isValidNumber() closed*/


// isValidLength - to validate the length of the field value
function isValidLength(element,msg,maxlength)
{
	if(element.value.length < maxlength)
	{
		alert("Invalid length in "+msg);
		element.focus();
		return false;
	}
	return true;
}



//function to validate phone number format
function isValidPhoneNumbers(statecode, areacode, phonenumber)
{		
	if(!isValidNumber(statecode, ' state code', 'yes'))
		return false;
	
	//if(!isValidLength(statecode, ' state code', '3'))
		//return false;

	if(!isValidNumber(areacode, ' area code', 'yes'))
		return false;
	
	//if(!isValidLength(areacode, ' area code', '3'))
		//return false;
	
	if(!isValidNumber(phonenumber, 'phone number', 'yes'))
		return false;

	//if(!isValidLength(phonenumber, '', '4'))
		//return false;

	return true;
}


function isValidZip(element,msg)
{
	if(element.val().length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}///if 
	else
	{
		
		var Num;
		Num=element.val();
		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);
			  element.focus();
			  return false;
			}
	   } // end for loop
	  
		if(element.val().length < 3)
		{
			alert("Invalid "+msg);
			element.focus();
			return false;
		}
		if(element.val().length > 5)
		{
			alert("Invalid "+msg);
			element.focus();
			return false;
		}		
	}/// else closed
	return true;
} //// function isValidNumber() closed

/*
1. 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.val();
	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;      
}

/*
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 isValidNum(element,msg)
{
	//alert(element.value);
	if(element.val().length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}///if 
	else
	{
		var regnum = new RegExp("^[0-9]");
		if(!(element.val().match(regnum)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}		
	}/// else closed
	return true;
} //// function isValidNumber() closed
function isValidNumber(element, msg, required)
{  
	var VarNumber = element.val();
	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

/*
 EMAIL ADDRESS VALIDATION

Usage: 
Element – name of the control, like frm.email
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

	 if(!isValidEmail(frm.email,'yes'))
	 return;
*/
//function to chk for valid email
function isValidEmail(VarEmail)
{
		if(VarEmail.val() == "" || VarEmail.length == 0)
		{
			alert("Please enter Email Address");
			VarEmail.focus();
			return false;
		}	

		if(VarEmail.val()!="")
        {

			if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(VarEmail.val())))
			{
				alert("Invalid Email address!")
				VarEmail.focus();
				return false;
			}
        } 
		return true;
}


/*function isValidEmail(element, required)
{
	var VarEmail = element.val();
	if(VarEmail == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter Email Address");
			element.focus();
			return false;
		}
	}	
	if(VarEmail != "")
	{
		var emailStr = VarEmail;
		 
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var firstChars=validChars
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom="(" + firstChars + validChars + "*" + ")"
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) 
		{
			 alert("Email address seems to be incorrect (check @ and .'s)");
			 element.focus();
			 return false;
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) 
		{
			alert("The username doesn't seem to be valid.");
			element.focus();
			return false;
		}
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) 
		{
			for (var i=1;i<=4;i++) 
			{
				if (IPArray[i]>255) 
				{
					 alert("Destination IP address is invalid!");
					 element.focus();
					 return false;
				}
			}
		}
		var domainArray=domain.match(domainPat)
		if (domainArray==null) 
		{
			alert("The domain name doesn't seem to be valid.");
			element.focus();
			return false;
		}
		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;
		if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
		{
		   alert("The address must end in a three-letter domain, or two letter country.");
		   element.focus();
		   return false;
		}
		if (domArr[domArr.length-1].length==2 && len<3) 
		{
			var errStr = "This address ends in two characters, which is a country";
			errStr    += " code.  Country codes must be preceded by ";
			errStr	  += "a hostname and category (like com, co, pub, pu, etc.)";
			alert(errStr);
			element.focus();
			return false;
		}
		if (domArr[domArr.length-1].length==3 && len<2) 
		{
			 var errStr="This address is missing a hostname!";
			 alert(errStr);
			 element.focus();
			 return false;
		}
	}
	return true;
}

*/
//FUNCTION TO CHECK WHETHER GIVEN N CONFIRM PASSWORD MATCH OR NOT
function isPasswordMatch(element1,element2)
{
	if(element1.val()!=element2.val())
	{
		alert("password and confirm password are not matching !");
		element2.focus();
		return false;
	}
	return true;
}//// password match function closed



//FUNCTION TO CHECK WHETHER VALID PASSWORD IS ENTERED OR NOT
function fnChkPwd(element)
{
	if(element.val().length < 6 || element.val().length >14)
	{
		alert("Password length should be between 6 and 14!");
		element.focus();
		return false;
	}
/*	var regpwd = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
	if(!element.val().match(regpwd))
	{
		alert("Invalid entry in "+msg);
		element.focus();
		return false;
	}	*/
	return true;
}



/******************************************
FUNCTION SELECT
*******************************************/
function testAtleatOne(ele)
{
	var len = ele.length;
	var selected = false;
	if(ele.length)
	{
		for(var i=0;i<len;i++)
		{
			if(ele[i].checked==true)
			{
				selected=true;
				break;
			}
		}
	}	
	else
	{
		if(ele.checked==true)
			selected = true;
	}		
	return selected;
}

function isValidSelect(element,msg)
{
	if(element.val() == "" || element.val() == "-1")
	{
		alert("Please select "+ msg +" from the list");
		element.focus();
		return false;
	}//if
	return true;
}/// isselect function clsed

function isValidMessageCount(fieldName,count,msg)
{
	if(fieldName.val().length < count)
	{
			alert(msg);
			fieldName.focus();
			return false;
	}
	return true;
}

///////// FUNCTION FOR FORGOT PASSWORD VALIDATION
function isAnyoneEmpty(fieldname1,fieldname2)
{
	if(fieldname1.val()=="" && fieldname2.val()=="")
	{
		alert("Please enter User Name or Email address!");
		fieldname1.focus();
		return false;
	}
	else
	{
		/*if(fieldname1.val() !="" && fieldname2.val()=="")
		{
			if(!isValidName(fieldname1,"User Name"))
				return false;
		}	*/
		if(fieldname1.val()=="" && fieldname2.val()!="")
		{
			if(!isValidEmail(fieldname2,"Invalid E-Mail"))
				return false;
		}
	}
	return true;
}
function isValidChar(element,msg)
{
	if(element.val().length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}
	else
	{
		var regname = new RegExp("^[YN]");
		if(!(element.val().match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}
	return true;
}// function IsValid() closed

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/// validation to enter only numbers
function check_alpha(val)
{
	var num = new RegExp(/^[0-9]+$/);
	var frm = document.frmprdsearch;
	if(!frm.elements['txtGoTo'].val().match(num))
	{
		alert('Incalid Data');
		return false;
	}
	else
   		frm.submit();
}


//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;
}

/// 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;
}

/// validation to enter only numbers and (.)hypen for phone no.
function check_phone(e)
{
	  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.which!=8 && e.which!=45) ||(e.which > 58 && e.which < 255) ) 
			return false;
	   }
	   return true;
}

//function to enter only letters and digits
function check_alphanum(e)
{
		if(window.event)
        {
				//alert(e.keyCode);
			   if((e.keyCode>32 && e.keyCode<=47) ||  (e.keyCode>=58 && e.keyCode<=95) 
                || (e.keyCode==96) || (e.keyCode>=123 && e.keyCode<=127)) 
                return false;
        }//if
        else if(e.which)
        {
			   //alert(e.which);
			   if((e.which>32 && e.which<=47) ||  (e.which>=58 && e.which<=95) 
                || (e.which==96) || (e.which>=123 && e.which<=127)) 
                return false;
        }//else if
        return true;
}


/*
7. URL VALIDATION

Usage:
Element – name of the control, like frm.url
Message – Field Name that we want to display in alert message.
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

	 if(!isValidURL(frm.url, "URL", "yes")) 
	 return;
*/
function isValidURL(element, msg, required)
{
	if(element.val() == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if(element.val() != "")
	{
		var oRegExp = /[^:]+:\/\/[^:\/]+(:[0-9]+)?\/?.*/;
		if (!oRegExp.test(element.val()))
		{
			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 CHECK WHETHER VALID PRICE IS ENTERED OR NOT
function isValidPrice(element, msg, required)
{  
	var VarNumber = element.val();
	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


function isValidPassword(element,msg)
{
	if(element.val() == "")
	{
		alert("Please enter "+msg);
		element.focus();
		return false;
	}
	if(element.val().length < 6 || element.val().length >14)
	{
		alert("Password length should be between 6 and 14!");
		element.focus();
		return false;
	}
	/*var regpwd = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
	if(!element.val().match(regpwd))
	{
		alert("Invalid entry in "+msg);
		element.focus();
		return false;
	}*/	
	return true;
}

//Purpose : function to check all the checkboxes 
//in the given chkbox array in given form 
function fnCheckAll(frm,chkbox,num_chkboxes)
{
	var chkbox_name = chkbox+'[]';

	if(num_chkboxes >1)
	{
		
		for(c=0; c<frm.elements[chkbox_name].length; c++)
		{
			frm.elements[chkbox_name][c].checked = true;	
		}
	}
	else
		frm.elements[chkbox_name].checked = true;
}


//Purpose : function to uncheck all the checkboxes 
//in the given chkbox array in given form 
function fnUnCheckAll(frm,chkbox,num_chkboxes)
{
	var chkbox_name = chkbox+'[]';
	if(num_chkboxes >1)
	{
		for(c=0; c<frm.elements[chkbox_name].length; c++)
		{
			frm.elements[chkbox_name][c].checked =false;
		}
	}
	else
		frm.elements[chkbox_name].checked = false;
}




function MM_openBrWindow(theURL,winName,features) 
{ 
  window.open(theURL,winName,features);
}


//function to check all checkboxes
function fncheck_all(frm,field)
{
	var len = field.length;
	if(document.getElementById('check').checked)
	{
		if(len)
		{
			for(var i=0;i<len;i++)
			{
				field[i].checked=true;
			}
		}
		else if(field)
			field.checked=true;
	}//if
	else
	{
		if(len)
		{
			for(var i=0;i<len;i++)
			{
				field[i].checked=false;
			}
		}
		else if(field)
			field.checked=false;
	}
}//function


function isValidPwdRule(VarPWD)
{
		if(VarPWD.val() == "" || VarPWD.length == 0)
		{
			alert("Please Create Your Password");
			VarPWD.focus();
			return false;
		}	

		if(VarPWD.val()!="")
        {

			if (!(/^(?=.*\d)(?=.*[A-Z]).{6,12}$/.test(VarPWD.val())))
			{
				alert("Password should contain 6-12 characters and at least one Capital letter and one Digit!")
				VarPWD.focus();
				return false;
			}
        } 
		return true;
}//password with atlest one capital letter and one digit


//function to check all checkboxes for not woned

function validdateformat(datefmt)
{
	if(datefmt.value == "" || datefmt.length == 0)
		{
			alert("Please Enter Schedule Date");
			datefmt.focus();
			return false;
		}	
		if(datefmt.val() == "0000-00-00")
		{
			alert("Please Clear 0000-00-00 and Enter Correct Schedule Date");
			datefmt.focus();
			return false;
		}	

		if(datefmt.val()!="")
        {

			if (!(/^(\d{4})\-(\d{2})\-(\d{2})$/.test(datefmt.val())))
			{
				alert("Not Correct Format Of Date plz Enter yyyy-mm-dd Formated Date!")
				datefmt.focus();
				return false;
			}
        } 
		return true;	
}


function isValidPriceRule(field,msg)
{
		if(field.val() == "" || field.length == 0)
		{
			alert("Please Enter"+msg);
			field.focus();
			return false;
		}	

		if(field.val()!="")
        {

			if (!(/^(?=.*\d)(?=.*[1-9]).{1,15}$/.test(field.val())))
			{
				alert(msg+" Should be a valid Price")
				field.focus();
				return false;
			}
        } 
		return true;
}//password with atlest one capital letter and one digit


 function bookmark(name,url)
{ 
	/*if(img_id=="")
		var title=stripslashes(document.getElementById("res_name").val());	
	else	
		var title=stripslashes(document.getElementById("imgTitle"+img_id).val());	*/
	//alert(window.sidebar);
	if (window.sidebar) 
	{
		// firefox 
		window.sidebar.addPanel(name, url, ""); 
		//Dont use until it's fixed 
		//alert('Dear Firefox user, please press CTRL+D to Bookmark this page!'); 
	}
	else if(window.opera && window.print)
	{ 
		// opera 
		var elem = document.createElement('a'); 
		elem.setAttribute('href',url);
		elem.setAttribute('title',name); 
		elem.setAttribute('rel','sidebar'); elem.click();		
	}
	else
	{
		// ie 
		window.external.AddFavorite(url, name); 
	}
}

//function for paging
function page_submit(frm,page_name,pg,limit,sortby,sortoption,search_key)
{	
	frm.pg.value=pg;		
	if(limit != '')	
		frm.limit.value = limit;	
	if(frm.sortby)
		frm.sortby.value = sortby;
	if(frm.sortoption)
		frm.sortoption.value = sortoption;	
	if(frm.search_key)
		frm.search_key.value = search_key;			
	if(page_name!='')
		frm.action=page_name;
	frm.submit();
}

function setEventSort(frm,page_name,sortby,sortoption)
{
	frm.sortby.value=sortby;
	frm.sortoption.value=sortoption;
	frm.submit();
}
//function to check user email already exist or not 
function fnCheckEmail(email,url,user_id)
{
	if(email!='')
	{
		xhReq.open("GET", url+"ajax/isEmailExist.php?email="+email+"&user_id="+user_id, true); 
		xhReq.onreadystatechange = checkmailresponse;
		xhReq.send(null);
	}
}
function checkmailresponse()
{
	if (xhReq.readyState != 4)  { return; }
	var serverResponse = xhReq.responseText;
	if(serverResponse != '')
	var cell = document.getElementById("email_exist");
	cell.innerHTML = serverResponse;
}
//function to check user email already exist or not 
function fnCheckUsername(uname,url,user_id)
{
	if(uname!='')
	{
		xhReq.open("GET", url+"ajax/isUsernameExist.php?uname="+uname+"&user_id="+user_id, true); 
		xhReq.onreadystatechange = checkunameresponse;
		xhReq.send(null);
	}
}
function checkunameresponse()
{
	if (xhReq.readyState != 4)  { return; }
	var serverResponse = xhReq.responseText;
	if(serverResponse != '')
	var cell = document.getElementById("username_exist");
	cell.innerHTML = serverResponse;
}

//function to select all options
function selectAllOptions(selectBox)
{	
	if(typeof selectBox == "string") 
	{
		selectBox = document.getElementById(selectBox);
	}
    if(selectBox.type == "select-multiple") 
    {
	  	for (var i = 1; i < selectBox.options.length; i++) 
		{
			selectBox.options[i].selected = true;
		}
    }
}

//function to move the list of items from left container to right container
function addSubCategory(frm,list,sellist)
{
	cnt = list.length;	
	cnt1 = sellist.length;
	selected_opt = 0;	
	for(i=0;i<cnt;i++)
	{
		if(list[i].selected == true)
		{	
			selected_opt++;	
			if(selected_opt >=3)
			{
				if(cnt1==1)
				{
					alert("Please Select a Maximum of Three Sub Categories");
					return false;
				}
			}
			else if(selected_opt >=2)
			{
				if(cnt1==2)
				{
					alert("Please Select a Maximum of Three Sub Categories");
					return false;
				}
			}
			count = 0;
			for(j=0;j<cnt1;j++)
			{
				if(sellist[j].value == list[i].value)
				count++;
				if(cnt1 > 3)
				{
					alert("Please Select a Maximum of Three Sub Categories");
					return false;
				}
			}
		    if(selected_opt > 3 || cnt1 >= 3)
			{
				alert("Please Select a Maximum of Three Sub Categories");
				return false;
			}
		
			if(count == 0 && cnt1 <= 3 && list[i].value!='all' &&  list[i].value!=0)
			{
				var elem = new Option(list[i].text,list[i].value);
				try {
					sellist.add(elem, null); // standards compliant; doesn't work in IE
				}
				catch(ex) {
					sellist.add(elem); // IE only
				}
			}//if
		}// if
	}// for
}

//function for removing region cities from right side container
function removeSubCategory(frm,selbox)
{
	var len = selbox.length;
	for(i=len-1;i>=0;i--)
	{
		if(selbox[i].selected)
			selbox.remove(i);	   
	}
}

//function for sorting in search results
function fnSortCompanies(frm)
{
	frm.submit();
}

//function for search 
function fnHomeSearch(frm,is_login,siteurl)
{
	var maincategory = frm.maincategory.value;
	var subcategory = frm.subcategory.value;
	var miles = frm.miles.value;
	if(maincategory == "" || subcategory == "")
	{
		alert("Please select from the Heading above a Main category + Sub Category then Search Distance");
		frm.maincategory.focus();
		return false;
	}
	else
	{
		if(is_login == 1)
		{
			frm.action = siteurl+"searchresults";
			frm.submit();
		}
		else
		{
			showFadeDiv();
			//alert(document.body.scrollWidth);
			//alert(document.body.offsetWidth);
		/*	document.getElementById('light').style.display='block';
			document.getElementById('fade').style.height = document.body.offsetHeight+"px";
			document.getElementById('fade').style.width = document.body.scrollWidth+"px";
			document.getElementById('fade').style.display='block';	
			
			xhReq.open("GET", siteurl+"header.php?search_ajax=1", true); 
			xhReq.onreadystatechange = showHomeSearchResp;
			xhReq.send(null);*/
		}
	
	}

}

//function to show fade div for login
function showFadeDiv()
{
		//alert(window.screen.width+"px");
		//alert(self.innerWidth + window.scrollMaxX);	
	document.getElementById('fade').style.height = document.body.offsetHeight+"px";
	document.getElementById('fade').style.width = self.innerWidth + window.scrollMaxX+ document.body.scrollWidth + document.body.offsetWidth+"px";
	document.getElementById('light').style.display='block';
	document.getElementById('fade').style.display='block';	
}

//function for advanced search
function fnAdvancedSearch(frm,is_login,siteurl)
{
	if(is_login == 1)
	{
		frm.action = siteurl+"advancedsearch";
		frm.submit();
	}
	else
	{
		document.getElementById('light').style.display='block';
		document.getElementById('fade').style.height = document.body.offsetHeight+"px";
		document.getElementById('fade').style.width = document.body.scrollWidth+"px";
		document.getElementById('fade').style.display='block';	
		/*xhReq.open("GET", siteurl+"header.php?search_ajax=1", true); 
		xhReq.onreadystatechange = showHomeSearchResp;
		xhReq.send(null);*/
	}
}
// response for fading effect of user profile
function showHomeSearchResp() 
{
	if(xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	alert(serverResponse)
	document.getElementById('searchDiv').innerHTML = serverResponse;
}


//function for getting cities
function fnGetCities(state_id,name,id)
{
	xhReq.open("GET", "ajax/getCities.php?state_id="+state_id+"&name="+name+"&id="+id, true); 
	xhReq.onreadystatechange = getcitiesResp;
	document.getElementById('citiesDiv').innerHTML = 'Loading...';
	xhReq.send(null);
}
function getcitiesResp() 
{
	if(xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	document.getElementById('citiesDiv').innerHTML = serverResponse;
	document.getElementById('city').focus();
}

//function for getting cities
function fnGetCompanyCities(state_id,name,id)
{
	xhReq.open("GET", "ajax/getCities.php?state_id="+state_id+"&name="+name+"&id="+id, true); 
	xhReq.onreadystatechange = getcompanycitiesResp;
	document.getElementById('citiesCompDiv').innerHTML = 'Loading...';
	xhReq.send(null);
}
function getcompanycitiesResp() 
{
	if(xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	document.getElementById('citiesCompDiv').innerHTML = serverResponse;
	document.getElementById('comp_city').focus();
}

function MM_openWindow(theURL,winName,features)
{ 
  window.open(theURL,winName,features);
}

function fnSubCategories(frm,cat_id,url,name,id)
{
	var j;
	for(j=frm.elements['category[]'].options.length-1;j>=0;j--)
	{
		frm.elements['category[]'].remove(j);
	}
	xhReq.open("GET", url+"ajax/gettingMemberCategory.php?cat_id="+cat_id+"&name="+name+"&id="+id, true);
	xhReq.onreadystatechange = getSubCategoriesResp;
	xhReq.send(null);
}
function getSubCategoriesResp() 
{	
	if (xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	document.getElementById("memSubCategy").innerHTML = serverResponse;
}

//function for rating
function fnCalculateRating(ValID,Val)
{
	document.getElementById('hid_'+ValID).value=Val;
	document.getElementById(ValID+'Div').innerHTML='('+Val+')';
	var cntval=Val*20;
	document.getElementById(ValID+'List').style.width=cntval+'%';
}

//function for expand and collapse
function fnExpandCollapse(feed_id,imgid,siteurl)
{
	if(document.getElementById('showFeedbacks'+feed_id).style.display == '')
	{
		document.getElementById(imgid).src = siteurl+'images/expand.gif';
		document.getElementById('showFeedbacks'+feed_id).style.display='none';
		document.getElementById("fldName"+feed_id).innerHTML = "Expand";
	}
	else
	{
		document.getElementById(imgid).src = siteurl+'images/collapse.gif';
		document.getElementById('showFeedbacks'+feed_id).style.display='';
		document.getElementById("fldName"+feed_id).innerHTML = "Collapse";
	}
}
function fnSearchback(pg,limit,frm,siteurl,cat,subcat,mile,sortby)
{
	frm.pg.value=pg;
	frm.limit.value=limit;
	frm.maincategory.value=cat;
	frm.subcategory.value=subcat;
	frm.miles.value=mile;
	frm.sortby.value=sortby;
	frm.srch_back.value="SEARCH_BACK";
	frm.action = siteurl+'searchresults';
	frm.submit();
}
function fnCompany(frm,id,siteurl,pagename)
{
	if(pagename!='')
		frm.pagename.value=pagename;
	frm.pagename_search.value="Search Results";
	frm.action = siteurl+'companydetails/'+id;
	frm.submit();
}
function fnviewallfeedbacks(frm,id,siteurl,pagename,pagename_search)
{
	if(pagename!='')
		frm.pagename.value=pagename;
	frm.pagename_search.value="Search Results";
	frm.pagename_company.value="Company Details";
	frm.action = siteurl+'viewallmemberfeedbacks/'+id;
	frm.submit();
}
function fnleavefeedback(frm,id,siteurl,pagename,pagename_search)
{
	if(pagename!='')
		frm.pagename.value=pagename;
	frm.pagename_search.value="Search Results";
	frm.pagename_company.value="Company Details";
	frm.action = siteurl+'leavefeedback/'+id;
	frm.submit();
}

function fnGetSubCategories(cat_id,url,name,id,from)
{
	xhReq.open("GET", url+"ajax/gettingSubCategories.php?cat_id="+cat_id+"&name="+name+"&id="+id, true);
	if(from == 'advanced')
	{
		xhReq.onreadystatechange = subAdvCategoriesResp;
		xhReq.send(null);
	}
	else
	{
		xhReq.onreadystatechange = subCategoriesResp;
		xhReq.send(null);
	}
	
}
function subCategoriesResp() 
{	
	if (xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	document.getElementById("subCategy").innerHTML = serverResponse;
	document.getElementById("showSearch").value = 'show';
}
function subAdvCategoriesResp() 
{	
	if (xhReq.readyState != 4)  { return; }
		var serverResponse = xhReq.responseText;
	//alert(serverResponse);
	document.getElementById("memAdvSubCategory").innerHTML = serverResponse;
}
function fncheckAlphaonly(e)
{  
   var key;
key = e.which ? e.which : e.keyCode;
if((key>=65 && key<=91) || (key >=97 && key<=123))
{       
	 e.returnValue= true;
}
else
{
alert("Invalid name");
e.returnValue = false;
}
}  

/*window.onresize = function (){
if(document.getElementById('fade').style.display == '')
 	showFadeDiv();	
}*/

//function to chk for valid email
function ValidEmail_check(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;
}

//open div for trailer
function fngetTrailerofContest(comp_id)
{
	var prevtrailorid = document.getElementById("trailerid").value
	if(prevtrailorid != '')
		document.getElementById("maincontainer"+prevtrailorid).style.display = 'none';
		
	document.getElementById("maincontainer"+comp_id).style.display = '';
	document.getElementById("trailerid").value = comp_id;
	//getXYPosition("maincontainer"+comp_id,'toolspacer'+comp_id,'200','-150');
	//draganddrop("maincontainer"+comp_id,'handle');
}

function closePlayer(playerid,divid)
{
	//var player1 = document.getElementById(playerid);
	//player1.sendEvent('STOP');
	//document.getElementById(playerid).sendEvent('STOP');
	document.getElementById(divid).style.display = 'none';
	//document.getElementById('player2').sendEvent("PLAY","false");
	
	//getPlayer('myplayer');
}


//open div for Terms and Conditions
function fnopenDiv(div_id)
{		
	document.getElementById(div_id).style.display = '';
}

// function to check whether given given text field is empty or not
function isValidNameEntry(element,msg) 
{  
	if(element.value.length == 0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}
	if(isBlank(element.value))
	{
		alert("Invalid characters in your text. Please try again.");
		element.focus();
		return false;
	}
	return true;
} 

//function to check whether given text field is empty or not
function isValidName(element,msg) 
{  
 	var re = new RegExp("^[a-zA-Z0-9]+([a-zA-Z0-9])$");		
 	var m = re.exec(element.value);
	if(element.value.length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}
	else if(isBlank(element.value))
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}
	else if(element.value.length == 1)
	{
		alert("Please recheck the number of characters entered in "+msg);
		element.focus();
		return false;
	}
	else if(m==null)
	{
		alert("Invalid entry in "+msg);
		element.focus();
		return false;
	}				
	return true;	
} 

/*IS BLANK
To check if trim(value) is blank
Usage: This function can be used to check if a given text contains only spaces or 0 in length.
INPUT: Text [txt]
	Minimum Length [minlen] optional
	Indicates that the text should be atleast 'minlen' in length
OUTPUT: returns true if blank else false*/	
function isBlank(txt,minlen)
{
	if(txt.length == getCountOf('\n',txt))
	{
		// This condition avoids the entry of just newlines in text areas.
		return true;
	}
	if(txt.length == getCountOf(' ',txt) || txt.length == 0)
	{
		return true;
	}
	else if( minlen > 0)
	{
		if( txt.length < minlen)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
	return true;
}

/*GET COUNT OF
Usage:
This can be used for any character validation.
For example in a valid date the count of - or / should not be more than 2
Likewise in a valid numer there should be only one.*/

function getCountOf(vChr, txt)
{
	var i = 0;
	var iCount = 0;
	for( i=0; i < txt.length; i++ )
	{		
		if( txt.charAt(i) == vChr )
		{
			iCount++;
		}
	}
	return iCount;
}
