var sInvalidChars
sInvalidChars="1234567890";
var iTotalChecked=0;

//variables added to allow spaces and plus sign validation for phone and faxes
var iAllowPlus  = 0;
var iAllowSpace = 0;

	// Function to open popup to check URL Starts here.
	function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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_showHideLayers() { //v6.0
  var i,p,v,dis,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) 
	{ 
		obj=obj.style; 
		dis=(v=='show')?'':(v=='hide')?'none':v; 
		v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
	}
    obj.display=dis; 
	obj.visibility=v; 
	}}


//var wordLen = 250; // Maximum word length

function checkWordLen(obj,wordLen)
{
	var len = obj.value.split(/[\s]+/);
	if(len.length > wordLen)
	{
		alert("Description cannot be more than "+wordLen+" words.");
		obj.oldValue = obj.value!=obj.oldValue?obj.value:obj.oldValue;
		obj.value = obj.oldValue?obj.oldValue:"";
		return false;
	}
	return true;
}

function checkCharacterLen(obj,wordLen)
{
	var len = obj.value.length;
	if(len > wordLen)
	{
		
		alert("Description cannot be more than "+wordLen+" characters.");
		return false;
		
	}
	return true;
}

function MM_openBrWindow(theURL,winName,features) 
{ //v2.0
  window.open(theURL,winName,features);
}


function checkNumericVals(objV,  msg)
{
	for(var i=0;i<sInvalidChars.length;i++)
	{
		if(objV.value.indexOf(sInvalidChars.charAt(i))!=-1)
		{
			alert(msg);
			objV.focus();
			return false;
		}
	}
	return true;
}

function checkdate(start,end)
{
	if((start.value != "") && (end.value == ""))
	{
		alert("Please Select End Date");
		start.focus();
		return false;
	}
	if((end.value != "") && (start.value == ""))
	{
		alert("Please Select Start Date");
		end.focus();
		return false;
	}
	if((start.value!="") && (end.value!=""))
	{
		var startdate = start.value;
		var startdate_array = startdate.split("-");
		var start_year = startdate_array[0];
		var start_month = startdate_array[1] - 1;
		var start_date = startdate_array[2];
		var enddate = end.value;
		var enddate_array = enddate.split("-");
		var end_year = enddate_array[0];
		var end_month = enddate_array[1] - 1;
		var end_date = enddate_array[2];
		var s=new Date(start_year,start_month,start_date)
		var e=new Date(end_year,end_month,end_date);
		if(s > e)
		{
			alert("End Date should be greater than Start Date");
			return false;
		}
			}
	return true;
}

function notyping(obj)
{	
	alert("You are not allowed to type please choose by clicking Browse");
	obj.blur();
	return;
}

function objChecked(obj)
{
	if(obj.checked)
		iTotalChecked = iTotalChecked + 1
	else
		iTotalChecked = iTotalChecked - 1
}
function fnSearch(iID)
{
	document.forms[0].HID_SearchID.value=iID;
	document.forms[0].action="../Users/Search.asp"
	document.forms[0].submit();
}

///
function fn_ValidateZipPhone(obj, iLen, sMsg)
{
	if(obj.value.length<iLen)
	{
		alert(sMsg);
		obj.select();
		obj.focus();
		return false;
	}
	return true;
}

//added by Shuchi Sethi on 18thDec2007 for validation of digital ad file uploaded from Sagoon Advertise section
function video_validation(obj)
{
   var file_name_obj=eval(obj); 
   var t=0,val,iscorrect;
   iscorrect="no";
   
   if(file_name_obj.value!="")
   {
		  arr = new Array('mpg','mpeg','flv','wmv','mov','avi','mp3','mp4','mpe','dat');
		//  alert(file_name_obj.value.substring(file_name_obj.value.lastIndexOf('.')+1).toLowerCase());
		  for (var i = 0;i<arr.length;i++)
		  { 
			 // validation of right type of image,checking from array defined in variables.php
			 	
			 if(file_name_obj.value.substring(file_name_obj.value.lastIndexOf('.')+1).toLowerCase()==arr[i]) 
			 {
				   iscorrect="yes";
			 }
		   }
		   if(iscorrect=="no")
		   {
			  alert ("File can only be of type:-"+arr); // validation of right type of image     checking from array defined in variables.php
			  file_name_obj.select();
			  return false;
			}
			if(file_name_obj.value.indexOf("'")!=-1)
			{
			  alert ("You cannot upload File having single quotes (') in its name");
			  file_name_obj.select();
			  return false;
			}
     }
  return true;
}

//created on: 30th Jan 2003
//Programmer: Anita Mourya
//Purpose	: This function is used to check that Password contains minimum characters and confirm Password matches the password. 
//Arguments : password field name , confirm password field name, minimum characters to check.
function CheckConfirmPassword(fldPass,fldConPass,minChars)
{
		if(fldPass.value.length == 0)
		{
			alert("Please enter your password");
			fldPass.focus();
			fldPass.select();
			return false;
		}
		h = fldPass.value.length;
		x = fldPass.value.value;

		for( i=0;i<h;i++)
		{
		 
			if (  h < minChars )
			{
							alert(" Password can't be less than " + minChars + " characters");
							fldPass.focus();
							fldPass.select();
							return false;
			}


		}
		//=============================

		if(fldConPass.value.length == 0)
		{
			alert("Please re-enter your password");
			fldConPass.focus();
			fldConPass.select();
			return false;
		}
	

		if(fldPass.value != fldConPass.value)
		{
			alert("Please ensure that you have entered the same password twice");
			fldConPass.focus();
			fldConPass.select();
			return false;
		}
	return true;

}


//created on: 30th Jan 2003
//Programmer: Anita Mourya
//Purpose	: This function is used to check that username does not contain any spaces. 
//Arguments : field name object, field alias to be used, character to be checked
function CheckCharWithinField(fldName, fldAlias, chkChar)
{
		b= fldName.value.length
		x= fldName.value
		
		if (x == "")
		{
			alert ("Please Enter Your " + fldAlias)
			fldName.focus();
			fldName.select();
			return false;
		}

		for( i=0;i<b;i++)
		{
			z = x.substring(i,i+1);
			if(z== chkChar)
			{
				alert("Please enter valid " + fldAlias + " without any '" + chkChar + "' in-between");
				fldName.focus();
				fldName.select();
				return false;
			}
		}
		//------------------------------

return true;
}

//created on: 10th May 2002
//Programmer: Prashant Sharma
//Purpose	: This function is used to check all the checkboxes basedon state of chk checkbox. 
//Arguments : checkbox object
function CheckAll(chk)
{
	
	for (var i=0;i < document.forms[0].elements.length;i++)
	{
		var e = document.forms[0].elements[i];
		if (e.type == "checkbox")
		{
			e.checked = chk.checked;
		}
	}
}

function fnRemoveSpaces(sFldval)
{
	var sTemp=sFldval;
  var sNewval=sTemp;
  //remove spaces from the front
  for(var i=0;i<sTemp.length;i++)
  {	
		if(sTemp.charAt(i)!=" ")
			break;
		else
			sNewval = sTemp.substring(i+1);
	}
	return sNewval;
}

//created on: 10th May 2002
//Programmer: Prashant Sharma
//Purpose	: This function is used to remove spaces. 
//Arguments : text field object value
function fnFixSpace(sFldval)
{
	
	var sTemp=sFldval;
	  var sReversedString="";
	  var sTemp1;
	  
	  //remove spaces from the front
	  sNewval = fnRemoveSpaces(sTemp);
	  
	  // reverse n remove spaces from the front
	  for(var i=sNewval.length-1;i>=0;i--)
		sReversedString = sReversedString + sNewval.charAt(i);
	sTemp1 = fnRemoveSpaces(sReversedString);
	//reverse again
	sReversedString="";
	for(var i=sTemp1.length-1;i>=0;i--)
		sReversedString = sReversedString + sTemp1.charAt(i);
	sNewval = sReversedString;
	return sNewval;
}

//created on: 12th May 2002
//Programmer: Prashant Sharma
//Purpose	: This function is used to validate email. 
//Arguments : Email object
function ValidateEMail(objName)
{
	var sobjValue;
	var iobjLength;
	
	sobjValue=objName;
	iobjLength=sobjValue.length;
	iFposition=sobjValue.indexOf("@");
	iSposition=sobjValue.indexOf(".");
	iTmp=sobjValue.lastIndexOf(".");	
	iPosition=sobjValue.indexOf(",");
	iPos=sobjValue.indexOf(";");
	ispacePos=sobjValue.indexOf(" ");
	
	if (iobjLength!=0)
	{
		if ((iFposition == -1)||(iSposition == -1))
		{
			return false;
		}
		else if(sobjValue.charAt(0) == "@" || sobjValue.charAt(0)==".")
		{
			return false;				
		}
		else if(sobjValue.charAt(iobjLength) == "@" ||
			sobjValue.charAt(iobjLength)==".")
		{
			return false;				
		}	
		else if((sobjValue.indexOf("@",(iFposition+1)))!=-1)
		{	
			return false;
		}
		else if ((iobjLength-(iTmp+1)<2)||(iobjLength-(iTmp+1)>3))
		{
			return false;
		}
		else if ((iPosition!=-1) || (iPos!=-1) || (ispacePos!=-1))
		{
			return false;
		}
		else
		{
			return true;
		}		
	}		
}

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.0
  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 && document.getElementById) x=document.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];}
}

/*--------------------------------------------------------------------------------------
	this sub routine checks for the mandatory fields, their data types and maximum length
	also validates valid email entered or not
	Return : True/False
	Input : objFrm ( form object name)
	Programmer : Prashant Sharma
	Dated : 22-05-2002
	Version : 1.0.0
**** new validateForm that check numerics in first name, last name etc  ---TRC,TLN  ,,      PHR, PHN -  phone numbers along with hyper and spaces , 
----------------------------------------------------------------------------------------*/
function ValidateForm(objFrm)
{
	var iConventionPos;
	var sChangedName;

	for( var i =0; i< objFrm.length;i++)
	{
		if(objFrm[i].type=='text' || objFrm[i].type=='textarea' || objFrm[i].type=='select-one' || objFrm[i].type=='select-multiple' || objFrm[i].type=='password')
		{
			if(objFrm[i].type=='text' || objFrm[i].type=='textarea' || objFrm[i].type=='password')
				objFrm[i].value = fnFixSpace(objFrm[i].value);

			var objDataTypeHolder = objFrm[i].name.substring(0,3);
			if(objFrm[i].name.substring(0,4)=='TRC_')
					objDataTypeHolder = objFrm[i].name.substring(0,4);
			if(objFrm[i].name.substring(0,4)=='TNC_')
					objDataTypeHolder = objFrm[i].name.substring(0,4);
			if(objFrm[i].name.substring(0,4)=='TLN_')
					objDataTypeHolder = objFrm[i].name.substring(0,4);
			if(objFrm[i].name.substring(0,5)=='TRFN_')
					objDataTypeHolder = objFrm[i].name.substring(0,5);
			if(objFrm[i].name.substring(0,5)=='TNFN_')
					objDataTypeHolder = objFrm[i].name.substring(0,5);
			if(objFrm[i].name.substring(0,6)=='TRURL_')
					objDataTypeHolder = objFrm[i].name.substring(0,6);
			if(objFrm[i].name.substring(0,6)=='TNURL_')
					objDataTypeHolder = objFrm[i].name.substring(0,6);
			if(objFrm[i].name.substring(0,13)=='TRNOTHTTPURL_')
					objDataTypeHolder = objFrm[i].name.substring(0,13);
			if(objFrm[i].name.substring(0,7)=='TREFUN_')
					objDataTypeHolder = objFrm[i].name.substring(0,7);
			if(objFrm[i].name.substring(0,5)=='TREF_' || objFrm[i].name.substring(0,5)=='TNEF_')
				objDataTypeHolder = objFrm[i].name.substring(0,5);
			
			if((objFrm[i].type=='select-one' && objFrm[i].options[objFrm[i].selectedIndex].value=='' && objDataTypeHolder=="TR_"))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please select "+ sChangedName +".");
				objFrm[i].focus();
				return false;
				break;
			}
			
			// This is coding for multiple select list boxes 
			if(objFrm[i].type=='select-multiple' && objDataTypeHolder=="TR_")
			{
				var optselected=false;
				for(var j=0;j<objFrm[i].length;j++) 
				{
					if(objFrm[i].options[j].selected==true)
					{
						optselected=true;
						break;
					}
				}
				
				if(optselected==false) 
				{
					sChangedName = objFrm[i].name.substring(3);
					sChangedName = getFormattedmsg(sChangedName);
					alert("Please select "+ sChangedName +".");
					objFrm[i].focus();
					return false;
					break;
				}
			}

			if(objFrm[i].type=='password' && objFrm[i].value!='' && objFrm[i].value.indexOf(" ")!=-1)
			{
				alert("Spaces are not allowed in password.");
				objFrm[i].select();
				return false;
				break;
			}
			if(objFrm[i].type=='password' && objFrm[i].name=='TR_Confirm_Password' && objFrm[i].value!=objFrm.TR_Password.value)
			{
				alert("Password and confirm password fields are not matching.");
				objFrm[i].select();
				return false;
				break;
			}
			if(objFrm[i].type=='password' && objFrm[i].name=='TN_Confirm_Password' && objFrm[i].value!=objFrm.TN_Password_temp.value)
			{
				alert("Password and confirm password fields are not matching.");
				objFrm[i].select();
				return false;
				break;
			}


			if((objDataTypeHolder=="TR_" || objDataTypeHolder=="TRC_" || objDataTypeHolder=="TRFN_" || objDataTypeHolder=="TL_" ||objDataTypeHolder=="IR_" || objDataTypeHolder=="MR_" || objDataTypeHolder=="TREFUN_"  ) && (objFrm[i].value==''))
			{	
				if(objDataTypeHolder=="TRC_")
					sChangedName = objFrm[i].name.substring(4);
				else
					sChangedName = objFrm[i].name.substring(3);

				if(objDataTypeHolder=="TRFN_")
					sChangedName = objFrm[i].name.substring(5);
				else
					sChangedName = objFrm[i].name.substring(3);

				if(objDataTypeHolder=="TREFUN_")
					sChangedName = objFrm[i].name.substring(7);
				else
					sChangedName = objFrm[i].name.substring(3);


				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter "+ sChangedName +".");
				objFrm[i].focus();
				return false;
				break;
			}

			if((objDataTypeHolder=="TR_" || objDataTypeHolder=="TRC_" || objDataTypeHolder=="TRFN_" || objDataTypeHolder=="TL_" ||objDataTypeHolder=="IR_" || objDataTypeHolder=="MR_"  )&& (objFrm[i].value==''))
			{	
				if(objDataTypeHolder=="TRC_")
					sChangedName = objFrm[i].name.substring(4);
				else
					sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter "+ sChangedName +".");
				objFrm[i].focus();
				return false;
				break;
			}

			if(objDataTypeHolder=="TRC_" && objFrm[i].value!='')
			{
				bb11= objFrm[i].value.length;
				x= objFrm[i].value;
				for( p=0;p<bb11;p++)
				{
					z = x.substring(p,p+1);
					if (  (z >="1" && z <= "9") || (bb11 > 30 )||z=='"' || z=="'")
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please enter correct "+ sChangedName +".");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
						}
				}
			}

			if(objDataTypeHolder=="TNC_" && objFrm[i].value!='')
			{
				bb11= objFrm[i].value.length;
				x= objFrm[i].value;
				for( p=0;p<bb11;p++)
				{
					z = x.substring(p,p+1);
					if (  (z >="1" && z <= "9") || (bb11 > 30 )||z=='"' || z=="'")
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please enter correct "+ sChangedName +".");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
						}
				}
			}

			if((objDataTypeHolder=="TL_" || objDataTypeHolder=="TLN_")&& objFrm[i].value!='')
			{
				bb11= objFrm[i].value.length;
				x= objFrm[i].value;
				for( p=0;p<bb11;p++)
				{
					z = x.substring(p,p+1);
//					alert(z);
					if (  isNaN(z) && z!='-' && z!=" ")
						{
							sChangedName = objFrm[i].name.substring(3);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Only numbers, space & - are allowed in "+ sChangedName +".");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
						}
				}
			}

			if(objDataTypeHolder=="TREF_" && objFrm[i].value=='')
			{
				sChangedName = objFrm[i].name.substring(5);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter "+ sChangedName +".");

//				alert("Please enter email.");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}

			if((objDataTypeHolder=="IR_" || objDataTypeHolder=="MR_" )&& (isNaN(objFrm[i].value)))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter numeric "+ sChangedName +".");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}
			if((objDataTypeHolder=="IR_" || objDataTypeHolder=="MR_" )&& (objFrm[i].value<=0))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter valid "+ sChangedName +".");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}

			if((objDataTypeHolder=="IN_" || objDataTypeHolder=="MN_" )&& (isNaN(objFrm[i].value) && objFrm[i].value!='' ))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter numeric "+ sChangedName +".");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}

			if((objDataTypeHolder=="IN_" || objDataTypeHolder=="MN_" )&& (objFrm[i].value<=0 && objFrm[i].value!=''))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter valid "+ sChangedName +".");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}

			if((objDataTypeHolder=="IR_" || objDataTypeHolder=="IN_" ) && (objFrm[i].value.indexOf(".")!=-1))
			{
				sChangedName = objFrm[i].name.substring(3);
				sChangedName = getFormattedmsg(sChangedName)
				alert("Please enter valid "+ sChangedName +".");
				objFrm[i].focus();
				objFrm[i].select();
				return false;
				break;
			}

			if((objDataTypeHolder=="TREF_") || (objDataTypeHolder=="TNEF_" && objFrm[i].value!='' ))
			{
				if(!ValidateEMail(objFrm[i].value))
				{
					sChangedName = objFrm[i].name.substring(5);
					sChangedName = getFormattedmsg(sChangedName)
//					alert("Please enter valid "+ sChangedName +". (It should be an Email)");

					alert("Please enter valid email.");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}
			
			//Checks for valid email if the field is username
			if((objDataTypeHolder=="TREFUN_")  && objFrm[i].value!='' )
			{
				if(!ValidateEMail(objFrm[i].value))
				{
					sChangedName = objFrm[i].name.substring(7);
					sChangedName = getFormattedmsg(sChangedName)
					alert("Please enter valid "+ sChangedName +". (It should be an Email)");

//					alert("Please enter valid email.");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}
			//ValidateNumber(objName)
			if((objDataTypeHolder=="MR_") || (objDataTypeHolder=="MN_" && objFrm[i].value!='' ))
			{
				if(!ValidatePrice(objFrm[i].value))
				{
					sChangedName = objFrm[i].name.substring(3);
					sChangedName = getFormattedmsg(sChangedName)
					alert("Please enter valid "+ sChangedName +".");
					//alert("Please enter valid email.");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}

			if((objDataTypeHolder=="NR_"))
			{
				if(!ValidateNumber(objFrm[i].value))
				{
					objFrm[i].focus();
					return false;
					break;
				}
			}			

			if(objDataTypeHolder=="PHR")
			{
				var val=objFrm[i].value;
				if (val!="")
				{
					for(var j=0; j < val.length;j++)
					{
						//The following can be used to validate phone numbers that start with +
						//Phone start with + sign
						if(val.charAt(0)!='+' && iAllowPlus==1)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please enter valid "+ sChangedName +". Example '+1234567'");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}

						if((val.charAt(j)!='(')&&(val.charAt(j)!=')') &&(val.charAt(j)!="-") &&(val.charAt(j)!=" ") && !((val.charAt(j)>=0)&&(val.charAt(j)<=9)))
						{
							if(j==0 && iAllowPlus==1) 
							{
								//Nothing to do
							}
							else
							{
								sChangedName = objFrm[i].name.substring(4);
								sChangedName = getFormattedmsg(sChangedName)
								//alert("Please enter valid "+ sChangedName +".");
								alert("Please enter numeric "+ sChangedName +" with no special chars other than ( ) - ");

	//							alert("Please enter valid Phone Number");
								objFrm[i].focus();
								objFrm[i].select();
								return false;
								break;
							}
						}

						if((val.charAt(j)==' ') && iAllowSpace==0)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Enter your "+ sChangedName +" with no spaces");

//							alert("Please enter valid Phone Number");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}
					}
				}
				else
				{
					sChangedName = objFrm[i].name.substring(4);
					sChangedName = getFormattedmsg(sChangedName)
					alert("Please Enter "+ sChangedName +".");

//					alert("Please Enter Phone Number");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}



			//ValidateNumber(objName)
			if((objDataTypeHolder=="NR_"))
			{
				if(!ValidateNumber(objFrm[i].value))
				{
					objFrm[i].focus();
					return false;
					break;
				}
				if(parseFloat(objFrm[i].value)<=0)
				{
					objFrm[i].focus();	
					alert('Price should be greater then 0');
					return false;
				}
			}

			if(objDataTypeHolder=="PHN")
			{
				var val=objFrm[i].value;
				if (val!="")
				{
					for(var j=0; j < val.length;j++)
					{
						//Phone start with + sign
						if(val.charAt(0)!='+' && iAllowPlus==1)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please enter valid "+ sChangedName +". Example '+1234567'");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}


						if((val.charAt(j)!='(')&&(val.charAt(j)!=')')&&(val.charAt(j)!="-")&&(val.charAt(j)!=' ')&& !((val.charAt(j)>=0)&&(val.charAt(j)<=9)))
						{
							if(j==0 && iAllowPlus==1) 
							{
								//Nothing to do
							}
							else
							{
								sChangedName = objFrm[i].name.substring(4);
								sChangedName = getFormattedmsg(sChangedName)
//								alert("Please enter valid "+ sChangedName +".");
								alert("Please enter numeric "+ sChangedName +" with no special chars other than ( ) - ");

	//							alert("Please enter valid Phone Number");
								objFrm[i].focus();
								objFrm[i].select();
								return false;
								break;
							}
						}

						if(val.charAt(j)==' ' && iAllowSpace==0)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please do not enter spaces in "+ sChangedName +".");

//							alert("Please enter valid Phone Number");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}
					}
				}				
			}

			if((objDataTypeHolder=="TRURL_") )
			{
				sChangedName = objFrm[i].name.substring(6);
				sChangedName = getFormattedmsg(sChangedName)
				if(objFrm[i].value=="")
				{
					alert("Please enter "+ sChangedName +".");

//					alert("Link cannot be left blank");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
				//alert(isURL(objFrm[i].value));
				if(!isURL(objFrm[i].value,sChangedName))
				{
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}

			if((objDataTypeHolder=="TNURL_") )
			{
				sChangedName = objFrm[i].name.substring(6);
				sChangedName = getFormattedmsg(sChangedName)
				if(objFrm[i].value!="")
				{
					//alert(isURL(objFrm[i].value));
					if(!isURL_TN(objFrm[i].value,sChangedName))
					{
						objFrm[i].focus();
						objFrm[i].select();
						return false;
						break;
					}
				}
			}
			//For optional http
			if((objDataTypeHolder=="TRNOTHTTPURL_") )
			{
				sChangedName = objFrm[i].name.substring(13);
				sChangedName = getFormattedmsg(sChangedName)
				if(objFrm[i].value=="")
				{
					alert("Please enter "+ sChangedName +".");

//					alert("Link cannot be left blank");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
				//alert(isURL(objFrm[i].value));
				if(!isURLOptionalHTTP(objFrm[i].value,sChangedName))
				{
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}


		if((objDataTypeHolder=="TRFN_"))
			{
				sChangedName = objFrm[i].name.substring(5);
				sChangedName = getFormattedmsg(sChangedName)
				if(!onlyString(objFrm[i].value))
				{
					alert("Please enter valid "+ sChangedName +".");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}	
			}

		if((objDataTypeHolder=="TNFN_") )
			{
				sChangedName = objFrm[i].name.substring(5);
				sChangedName = getFormattedmsg(sChangedName)
				if(objFrm[i].value!="")
				{
					if(!onlyString(objFrm[i].value))
					{
						alert("Please enter valid "+ sChangedName +".");
						objFrm[i].focus();
						objFrm[i].select();
						return false;
						break;
					}
				}
			}

			//validate fax number
			if(objDataTypeHolder=="FXR_")
			{
				var val=objFrm[i].value;
				if (val!="")
				{
					for(var j=0; j < val.length;j++)
					{
						//Fax start with + sign
						if(val.charAt(0)!='+' && iAllowPlus==1)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Please enter valid "+ sChangedName +". Example '+1234567'");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}

						if((val.charAt(0)!='+')&&(val.charAt(j)!='(')&&(val.charAt(j)!=')')&&(val.charAt(j)!="-")&&(val.charAt(j)!=" ")&& !((val.charAt(j)>=0)&&(val.charAt(j)<=9)))
						{
							if(j==0 && iAllowPlus==1) 
							{
								//Nothing to do
							}
							else
							{
								sChangedName = objFrm[i].name.substring(4);
								sChangedName = getFormattedmsg(sChangedName)
								//alert("Please enter valid "+ sChangedName +".");
//								alert("Enter your "+ sChangedName +" with no special chars other than ( ) - +");
								alert("Please enter numeric "+ sChangedName +" with no special chars other than ( ) - ");

	//							alert("Please enter valid Fax Number");
								objFrm[i].focus();
								objFrm[i].select();
								return false;
								break;
							}
						}
						if((val.charAt(j)==' ') && iAllowSpace==0)
						{
							sChangedName = objFrm[i].name.substring(4);
							sChangedName = getFormattedmsg(sChangedName)
							alert("Enter your "+ sChangedName +" with no spaces");

//							alert("Please enter valid Fax Number");
							objFrm[i].focus();
							objFrm[i].select();
							return false;
							break;
						}
					}
				}
				else
				{
					sChangedName = objFrm[i].name.substring(4);
					sChangedName = getFormattedmsg(sChangedName)
					alert("Please Enter "+ sChangedName +".");

//					alert("Please Enter Fax Number");
					objFrm[i].focus();
					objFrm[i].select();
					return false;
					break;
				}
			}
			//end of fax number
/////////////////////////////////////////////////////////////////////////////
		}
	}
	return true;
}


function FormatDate(d)
{
		var dd,mm;
		var l;
		l=d.indexOf("/");
		dd=d.substring(0,l);
		d=d.substring(l+1);
		l=d.indexOf("/");
		mm=d.substring(0,l);
		yy=d.substring(l+1);
		
		if (parseInt(dd) < 10)
			dd="0" + dd;
		if (parseInt(mm) < 10)
			mm="0" + mm;
		d= dd + "/" + mm + "/" + yy
		return d;
}

function ValidateImg(objImg, isRequired)
{


	if(isRequired ==1 && objImg.value=='')
	{
		alert("Please uplolad image.");
		objImg.focus();
		return false;
	}
	if(objImg.value.length!=0)
	{
		if(objImg.value.length<5)
		{
			alert("Please upload valid image of type - JPG, GIF, BMP.");
			objImg.focus();
			objImg.select();
			return false;
		}
		var iPos = objImg.value.lastIndexOf(".")
		var sExt = objImg.value.substring(iPos);
		if((sExt.toUpperCase()=='.JPEG') || (sExt.toUpperCase()=='.JPG') || (sExt.toUpperCase()=='.GIF') || (sExt.toUpperCase()=='.BMP') )
		{
			return true;
		}
		else
		{
			alert("Please upload valid image of type - JPG, GIF, BMP.");
			objImg.focus();
			objImg.select();
			return false;
		}
	}
	return true;
}

/*
DUPLICATE FUNCTION
function ValidateNumber(objName)
{
	var h;
	var x;
	
	h=objName.length;
	x = objName;
	if (h==0)
	{
		alert("Price Can be numeric only");
		return false;
	}			
	for( i=0;i<h;i++)
	{
		z = x.substring(i,i+1);
		if ( z=="'"||z=='"' || (z >= "a" && z <= "z" ) || (z >= "A" && z <= "Z") )
		{
			alert("Price Can be numeric only");
			return false;
		}			
	}
	jj=x.indexOf(".");
	if (jj != "-1") 
		{
		hh=x.substring(jj);
		ll=hh.length;
		if (ll > 3) 
			{
			alert("Price Can have upto 2 decimal places");
			return false;
			}
		}
	x = objName;
	return true;
	
}
*/
function ValidateNumber(objName)
{
	
		
	var h;
	var x;
	
	h=objName.length;
	x = objName;
	if (h==0)
	{
		alert("Price cannot be left blank");
		return false;
	}			
	for( i=0;i<h;i++)
	{
		z = x.substring(i,i+1);
		if ( z=="'"||z=='"' || (z >= "a" && z <= "z" ) || (z >= "A" && z <= "Z") )
		{
			alert("Price Can be numeric only");
			return false;
		}			
	}
	jj=x.indexOf(".");
	if (jj != "-1") 
		{
		hh=x.substring(jj);
		ll=hh.length;
		if (ll > 3) 
			{
			alert("Price Can have upto 2 decimal places");
			return false;
			}
		}
	return true;
	
}

function checkname(pn, dipname)
{
		var n,s,z;
		n=0;
		s=0;
		z=pn.value.length;
//		alert(pn.name + z);
		for(var i=0;i<z;i++)
		{		
			alert(pn.charCodeAt(i));
			if((pn.charCodeAt(i)>=48 && pn.charCodeAt(i)<=57))
				n=n+1;
			else
				s=s+1;
		}
//		alert(pn.name + ' '+ n + ' ' + s);
		if (s==0)
		{
			alert(dipname + ' cannot be just numbers!!');
			return false;
		}
		else
		{
			return true;
		}
}

function getFormattedmsg(sVal)
{
	while(sVal.indexOf("_")!=-1)
	{
		sVal = sVal.replace("_", " ")
	}
	var b;
	b=sVal.charAt(0).toUpperCase();
	b=b+sVal.substring(1);
	return b;
	
}

function isURL(argvalue,urlname)
{
    if (argvalue.indexOf(" ") != -1)
	{
		alert("Spaces not allowed in "+ urlname +"!");
	    return false;
	}
	else if ((argvalue.indexOf("http://") == -1) && (argvalue.indexOf("https://") == -1))
    {
		alert(urlname +" must begin with a http:// or https://");
	    return false;
	}
	else if ((argvalue == "http://") || (argvalue == "https://"))
    {
		alert("Please enter complete "+ urlname +"!");
	    return false;
	}
	else if ((argvalue.indexOf("http://") > 0) || (argvalue.indexOf("https://") > 0))
    {
		alert("http:// or https:// must come in the beginning of a "+ urlname);
	    return false;
	}

	argvalue = argvalue.substring(7, argvalue.length);
	if (argvalue.indexOf(".") == -1)
	{
		alert("Please enter an extension like .com, .edu(etc) for "+ urlname +"!");
	    return false;
	}
	else if (argvalue.indexOf(".") == 0)
	{
		alert("Please enter correct "+ urlname +"!");
	    return false;
	}
	else if (argvalue.charAt(argvalue.length - 1) == ".")
    {
		alert("Please enter an extension after . like com, edu(etc) for "+ urlname +"!");
	    return false;
	}

	if (argvalue.indexOf("/") != -1) 
	{
		argvalue = argvalue.substring(0, argvalue.indexOf("/"));
		if (argvalue.charAt(argvalue.length - 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
	}

	if (argvalue.indexOf(":") != -1) 
	{
		if (argvalue.indexOf(":") == (argvalue.length - 1))
		{
			alert("Please enter correct "+ urlname +"!");
		    return false;
		}
	    else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
		argvalue = argvalue.substring(0, argvalue.indexOf(":"));
		if (argvalue.charAt(argvalue.length - 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
	}
	return true;
}
function isURL_TN(argvalue,urlname)
{
	argvalue1 = argvalue.substring(7, argvalue.length);
	if(argvalue1.length > 0)
	{
		if (argvalue.indexOf(" ") != -1)
		{
			alert("Spaces not allowed in "+ urlname +"!");
			return false;
		}
		else if (argvalue.indexOf("http://") == -1)
		{
			alert(urlname +" must begin with a http://");
			return false;
		}
		else if (argvalue.indexOf("http://") > 0)
		{
			alert("http:// must come in the beginning of a "+ urlname);
			return false;
		}

		argvalue = argvalue.substring(7, argvalue.length);
		
		if (argvalue.indexOf(".") == -1)
		{
			alert("Please enter an extension like .com, .edu(etc) for "+ urlname +"!");
			return false;
		}
		else if (argvalue.indexOf(".") == 0)
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
		else if (argvalue.charAt(argvalue.length - 1) == ".")
		{
			alert("Please enter an extension after . like com, edu(etc) for "+ urlname +"!");
			return false;
		}

		if (argvalue.indexOf("/") != -1) 
		{
			argvalue = argvalue.substring(0, argvalue.indexOf("/"));
			if (argvalue.charAt(argvalue.length - 1) == ".")
			{
				alert("Please enter correct "+ urlname +"!");
				return false;
			}
		}

		if (argvalue.indexOf(":") != -1) 
		{
			if (argvalue.indexOf(":") == (argvalue.length - 1))
			{
				alert("Please enter correct "+ urlname +"!");
				return false;
			}
			else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
			{
				alert("Please enter correct "+ urlname +"!");
				return false;
			}
			argvalue = argvalue.substring(0, argvalue.indexOf(":"));
			if (argvalue.charAt(argvalue.length - 1) == ".")
			{
				alert("Please enter correct "+ urlname +"!");
				return false;
			}
		}
	}
	return true;
}
//Validate url without http
function isURLNotHTTP(argvalue,urlname)
{
    if (argvalue.indexOf(" ") != -1)
	{
		alert("Spaces not allowed in "+ urlname +"!");
	    return false;
	}
	if (argvalue.indexOf(".") == -1)
	{
		alert("Please enter an extension like .com, .edu(etc) for "+ urlname +"!");
	    return false;
	}
	else if (argvalue.indexOf(".") == 0)
	{
		alert("Please enter correct "+ urlname +"!");
	    return false;
	}
	else if (argvalue.charAt(argvalue.length - 1) == ".")
    {
		alert("Please enter an extension after . like com, edu(etc) for "+ urlname +"!");
	    return false;
	}
	if (argvalue.indexOf("/") != -1) 
	{
		argvalue = argvalue.substring(0, argvalue.indexOf("/"));
		if (argvalue.charAt(argvalue.length - 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
	}

	if (argvalue.indexOf(":") != -1) 
	{
		if (argvalue.indexOf(":") == (argvalue.length - 1))
		{
			alert("Please enter correct "+ urlname +"!");
		    return false;
		}
	    else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
		argvalue = argvalue.substring(0, argvalue.indexOf(":"));
		if (argvalue.charAt(argvalue.length - 1) == ".")
		{
			alert("Please enter correct "+ urlname +"!");
			return false;
		}
	}
	return true;
}
//Allow Optional HTTP
function isURLOptionalHTTP(argvalue,urlname)
{
	var flag	
	if( (argvalue.indexOf("http://") >=0) || (argvalue.indexOf("https://") >=0 ) )
	{
		flag=isURL(argvalue,urlname)
	}
	else
	{
		flag=isURLNotHTTP(argvalue,urlname)		
	}
		return flag;
}
function ValidateItemName(objName)
{
			
	var h;
	var x;
	
	h=objName.length;
	x = objName;
	if (h==0)
	{
		alert("Item Name Cannot left blank");
		return false;
	}			
	for( i=0;i<h;i++)
	{
		z = x.substring(i,i+1);
		if ( z=="_" || z=="-" || z=="&" || z==" " || (z >= "a" && z <= "z" ) || (z >= "A" && z <= "Z") || (z >= "0" && z <= "9") )
		{
		}else{
			alert("Please enter Valid Item Name");
			return false;
		}
	}
	return true;
}

//created on: 20th Feb 2004
//Programmer: Geeta Khurana
//Purpose	: This function is used to validate price. 
//Arguments : price object
function ValidatePrice(objName)
{
	var sobjValue;
	var iobjLength;
	
	sobjValue=objName;
	iobjLength=sobjValue.length;
	iSposition=sobjValue.indexOf(".");
	iTmp=sobjValue.lastIndexOf(".");	
	iPosition=sobjValue.indexOf(",");
	iPos=sobjValue.indexOf(";");
	
	if (iobjLength!=0)
	{
/*		if ((iSposition == -1))
		{
			return false;
		}
		else*/
		if(sobjValue.charAt(0)==".")
		{
			return false;				
		}
		else if(sobjValue.charAt(iobjLength)==".")
		{
			return false;				
		}	
		//else if ((iTmp!=-1) && ((iobjLength-(iTmp+1)>2) || (iobjLength==(iTmp+1))))
		else if ((iTmp!=-1) && ((iobjLength-(iTmp+1)>3) || (iobjLength==(iTmp+1))))
		{
			return false;
		}
		else if ((iPosition!=-1) || (iPos!=-1))
		{
			return false;
		}
		else
		{
			return true;
		}		
	}		
}

function imageExist(obj)
{

	var iPos = obj.value.lastIndexOf(".")
	var sExt = obj.value.substring(iPos);
	if((sExt.toUpperCase()=='.JPEG') || (sExt.toUpperCase()=='.JPG') || (sExt.toUpperCase()=='.GIF') || (sExt.toUpperCase()=='.PNG'))// || (sExt.toUpperCase()=='.BMP'))
	{
		return true;
	}
	else
	{
		alert("Please upload valid image of type - jpg, gif, png.");
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}

function checkImageSize(obj)
{

	var vWidth=100;
	var vHeight=80;

	img = new Image();
	img.src = obj.value;
	var imWidth = img.width;
	var imHeight = img.height;
	if (imWidth == 0 || imHeight == 0) 
	{
		//return validate(document.frmBan);
		return false;
	}
	if((imWidth!=vWidth) || (imHeight!=vHeight))
	{
			alert("Please check the size of image with that you have selected.\n It should be "+vWidth+"x"+vHeight+" and your image size is "+imWidth+"x"+imHeight);
			return false;		
			
			
	}
	else
	{
		return true;
	}
	return false;
}

/*
Programmer :Anita Mourya
Date: 4 Oct,2003
Description: This Function checks that the string value passed to the function does contains some characters.
*/
function onlyno()
{
	if (event.keyCode < 45 || event.keyCode > 57) 
		event.returnValue = false;
}

//Programmer :Anita Mourya
//Date: 24 Sept,2003
//Description: This Function checks that the character entered is only character
function onlychar()
{
	if((event.keyCode >= 65 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122) || event.keyCode == 32 )
	{
	}
	else
	{
		event.returnValue = false;
	}
}

//Programer:Navneet Tyagi
function check_Pwd(obj)
{
	x=obj.value;
	flag=0;
	//temp_char="_";
	b=x.length

	if(b<5)
	{
		alert("Password Should Be Of Minimum 5 Characters ");
		obj.focus();
		obj.select();
		return false;
	}

	if(b>15)
	{
		alert("Password Should Be Of Maximum 15 Characters ");
		obj.focus();
		obj.select();
		return false;
	}
		
	for( i=0;i < b;i++)
	{
		vAscii = x.charCodeAt(i)
			

		if((vAscii >= 65 && vAscii <= 90) || (vAscii >= 97 && vAscii <= 122) || (vAscii >= 45 && vAscii <= 57) || ( x.charAt(i)=="_"))
		{
			flag=1;		
		}
		else
		{
			flag=0;
			break;
		}
		
	}


	if(flag==0)
	{
		alert("Only Characters a-z,A-Z,0-9 and '_' are allowed for Password ");
		obj.focus();
		obj.select();
		return false;
	}
	else
	{
		return true;
	}
}

//Programmer :Geeta Khurana
//Date: 8 July,2004
//Description: This Function checks that the character entered is only character or space used in validate form function
function onlyString(TempString)
{
	bb11= TempString.length;
	x= TempString;
	flag=0;

	for( p=0;p<bb11;p++)
	{
		vAscii = x.charCodeAt(p)
		//z = x.substring(p,p+1);
		 if((vAscii >= 65 && vAscii <= 90) || (vAscii >= 97 && vAscii <= 122) || (vAscii == 32))
			{
				flag=1;		
			}
			else
			{
				flag=0;
				break;
			}
	}
	if(flag==0)
	{
		return false;
	}
	else
	{
		return true;
	}
}


function ValidateHTML(objName)
{
	var h;
	var x;
	
	h=objName.length;
	x = objName;
	if (h==0)
	{
		alert("Page Name Cannot left blank");
		return false;
	}			
	for( i=0;i<h;i++)
	{
		z = x.substring(i,i+1);
		if ( z=="." || z=="_" || z=="-" || (z >= "a" && z <= "z" ) || (z >= "A" && z <= "Z") || (z >= "0" && z <= "9") )
		{
		}else{
			alert("Please enter Valid Page Name");
			return false;
		}
	}
	if(x.indexOf('.php') ==-1 ){
		alert("Please enter Valid Page Name\nThe extension of the Page should be .php");
		return false;
	}
	if(x.indexOf('index.php') !=-1 ){
		alert("index.php already exists");
		return false;
	}
	if(x.indexOf('contactus.php') !=-1 ){
		alert("contactus.php already exists");
		return false;
	}
	return true;
	
}

function ValidateFolder(objName)
{
	var h;
	var x;
	
	h=objName.length;
	x = objName;
	if (h==0)
	{
		alert("Folder Name Cannot left blank");
		return false;
	}			
	for( i=0;i<h;i++)
	{
		z = x.substring(i,i+1);
		if ( z=="_" || z=="-" || (z >= "a" && z <= "z" ) || (z >= "A" && z <= "Z") || (z >= "0" && z <= "9") )
		{
		}else{
			alert("Please enter Valid Folder Name\nDo not enter any space and special charecters");
			return false;
		}
	}
	return true;
	
}

//-------**********trim function **************--------------------
function LTrim(str)
{
	for (var i=0; str.charAt(i)==" "; i++);
	return str.substring(i,str.length);
 }
function RTrim(str)
 {
	for (var i=str.length-1; str.charAt(i)==" "; i--);
	return str.substring(0,i+1);
 }
 function Trim(str)
 {
	return LTrim(RTrim(str));
 }

 function replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function

/* Here's the list of tokens we support:
   m (or M) : month number, one or two digits.
   mm (or MM) : month number, strictly two digits (i.e. April is 04).
   d (or D) : day number, one or two digits.
   dd (or DD) : day number, strictly two digits.
   y (or Y) : year, two or four digits.
   yy (or YY) : year, strictly two digits.
   yyyy (or YYYY) : year, strictly four digits.
   mon : abbreviated month name (April is apr, Apr, APR, etc.)
   Mon : abbreviated month name, mixed-case (i.e. April is Apr only).
   MON : abbreviated month name, all upper-case (i.e. April is APR only).
   mon_strict : abbreviated month name, all lower-case (i.e. April is apr 
         only).
   month : full month name (April is april, April, APRIL, etc.)
   Month : full month name, mixed-case (i.e. April only).
   MONTH: full month name, all upper-case (i.e. APRIL only).
   month_strict : full month name, all lower-case (i.e. april only).
   h (or H) : hour, one or two digits.
   hh (or HH) : hour, strictly two digits.
   min (or MIN): minutes, one or two digits.
   mins (or MINS) : minutes, strictly two digits.
   s (or S) : seconds, one or two digits.
   ss (or SS) : seconds, strictly two digits.
   ampm (or AMPM) : am/pm setting.  Valid values to match this token are
         am, pm, AM, PM, a.m., p.m., A.M., P.M.
*/
// Be careful with this pattern.  Longer tokens should be placed before shorter
// tokens to disambiguate them.  For example, parsing "mon_strict" should 
// result in one token "mon_strict" and not two tokens "mon" and a literal
// "_strict".

var tokPat=new RegExp("^month_strict|month|Month|MONTH|yyyy|YYYY|mins|MINS|mon_strict|ampm|AMPM|mon|Mon|MON|min|MIN|dd|DD|mm|MM|yy|YY|hh|HH|ss|SS|m|M|d|D|y|Y|h|H|s|S");

// lowerMonArr is used to map months to their numeric values.

var lowerMonArr={jan:1, feb:2, mar:3, apr:4, may:5, jun:6, jul:7, aug:8, sep:9, oct:10, nov:11, dec:12}

// monPatArr contains regular expressions used for matching abbreviated months
// in a date string.

var monPatArr=new Array();
monPatArr['mon_strict']=new RegExp(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/);
monPatArr['Mon']=new RegExp(/Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec/);
monPatArr['MON']=new RegExp(/JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC/);
monPatArr['mon']=new RegExp("jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec",'i');

// monthPatArr contains regular expressions used for matching full months
// in a date string.

var monthPatArr=new Array();
monthPatArr['month']=new RegExp(/^january|february|march|april|may|june|july|august|september|october|november|december/i);
monthPatArr['Month']=new RegExp(/^January|February|March|April|May|June|July|August|September|October|November|December/);
monthPatArr['MONTH']=new RegExp(/^JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER/);
monthPatArr['month_strict']=new RegExp(/^january|february|march|april|may|june|july|august|september|october|november|december/);

// cutoffYear is the cut-off for assigning "19" or "20" as century.  Any
// two-digit year >= cutoffYear will get a century of "19", and everything
// else gets a century of "20".

var cutoffYear=50;

// FormatToken is a datatype we use for storing extracted tokens from the
// format string.
function FormatToken (token, type) 
{
	this.token=token;
	this.type=type;
}

function parseFormatString (formatStr) 
{
	var tokArr=new Array;
	var tokInd=0;
	var strInd=0;
	var foundTok=0;
    
	while (strInd < formatStr.length) 
	{
		if (formatStr.charAt(strInd)=="%" && (matchArray=formatStr.substr(strInd+1).match(tokPat)) != null) 
		{
			strInd+=matchArray[0].length+1;
			tokArr[tokInd++]=new FormatToken(matchArray[0],"symbolic");
		} 
		else 
		{
			// No token matched current position, so current character should 
			// be saved as a required literal.
			if (tokInd>0 && tokArr[tokInd-1].type=="literal") 
			{
				// Literal tokens can be combined.Just add to the last token.
				tokArr[tokInd-1].token+=formatStr.charAt(strInd++);
			}
			else 
			{
				tokArr[tokInd++]=new FormatToken(formatStr.charAt(strInd++), "literal");
		    }
		}
	}
	return tokArr;
}

/* buildDate does all the real work.It takes a date string and format string,
 tries to match the two up, and returns a Date object (with the supplied date
 string value).If a date string doesn't contain all the fields that a Date
 object contains (for example, a date string with just the month), all
 unprovided fields are defaulted to those characteristics of the current
 date. Time fields that aren't provided default to 0.Thus, a date string
 like "3/30/2000" in "%mm/%dd/%yyyy" format results in a Date object for that
 date at midnight.formatStr is a free-form string that indicates special
 tokens via the % character.Here are some examples that will return a Date
 object:

 buildDate('3/30/2000','%mm/%dd/%y') // March 30, 2000
 buildDate('March 30, 2000','%Mon %d, %y') // Same as above.
 buildDate('Here is the date: 30-3-00','Here is the date: %dd-%m-%yy')

 If the format string does not match the string provided, an error message
 (i.e. String object) is returned.Thus, to see if buildDate succeeded, the
 caller can use the "typeof" command on the return value.For example,
 here's the dateCheck function, which returns true if a given date is
 valid,and false otherwise (and reports an error in the false case):

 function dateCheck(dateStr,formatStr) {
 var myObj=buildDate(dateStr,formatStr);
 if (typeof myObj=="object") {
 // We got a Date object, so good.
 return true;
 } else {
 // We got an error string.
 alert(myObj);
 return false;
 }
 }

*/

function buildDate(dateStr,formatStr) 
{
	// parse the format string first.
	var tokArr=parseFormatString(formatStr);
	var strInd=0;
	var tokInd=0;
	var intMonth;
	var intDay;
	var intYear;
	var intHour;
	var intMin;
	var intSec;
	var ampm="";
	var strOffset;

	// Create a date object with the current date so that if the user only
	// gives a month or day string, we can still return a valid date.

	var curdate=new Date();
	intMonth=curdate.getMonth()+1;
	intDay=curdate.getDate();
	intYear=curdate.getFullYear();

	// Default time to midnight, so that if given just date info, we return
	// a Date object for that date at midnight.

	intHour=0;
	intMin=0;
	intSec=0;

	// Walk across dateStr, matching the parsed formatStr until we find a 
	// mismatch or succeed.

	while (strInd < dateStr.length && tokInd < tokArr.length) 
	{
		// Start with the easy case of matching a literal.
		if (tokArr[tokInd].type=="literal") 
		{
			if (dateStr.indexOf(tokArr[tokInd].token,strInd)==strInd) 
			{
				// The current position in the string does match the format 
				// pattern.
				strInd+=tokArr[tokInd++].token.length;
				continue;
			}
			else 
			{
				// ACK! There was a mismatch; return error.
				return "\"" + dateStr + "\" does not conform to the expected format: " + formatStr;
			}
		}

		// If we get here, we're matching to a symbolic token.
		switch (tokArr[tokInd].token) 
		{
			case 'm':
			case 'M':
			case 'd':
			case 'D':
			case 'h':
			case 'H':
			case 'min':
			case 'MIN':
			case 's':
			case 'S':

			// Extract one or two characters from the date-time string and if 
			// it's a number, save it as the month, day, hour, or minute, as
			// appropriate.

			curChar=dateStr.charAt(strInd);
			nextChar=dateStr.charAt(strInd+1);
			matchArr=dateStr.substr(strInd).match(/^\d{1,2}/);
			if (matchArr==null) 
			{
				// First character isn't a number; there's a mismatch between
				// the pattern and date string, so return error.

				switch (tokArr[tokInd].token.toLowerCase()) 
				{
					case 'd': var unit="day"; break;
					case 'm': var unit="month"; break;
					case 'h': var unit="hour"; break;
					case 'min': var unit="minute"; break;
					case 's': var unit="second"; break;
				}
				return "Bad " + unit + " \"" + curChar + "\" or \"" + curChar +
				nextChar + "\".";
			}
			strOffset=matchArr[0].length;
			switch (tokArr[tokInd].token.toLowerCase()) 
			{
				case 'd': intDay=parseInt(matchArr[0],10); break;
				case 'm': intMonth=parseInt(matchArr[0],10); break;
				case 'h': intHour=parseInt(matchArr[0],10); break;
				case 'min': intMin=parseInt(matchArr[0],10); break;
				case 's': intSec=parseInt(matchArr[0],10); break;
			}
			break;
			case 'mm':
			case 'MM':
			case 'dd':
			case 'DD':
			case 'hh':
			case 'HH':
			case 'mins':
			case 'MINS':
			case 'ss':
			case 'SS':

			// Extract two characters from the date string and if it's a 
			// number, save it as the month, day, or hour, as appropriate.

			strOffset=2;
			matchArr=dateStr.substr(strInd).match(/^\d{2}/);
			if (matchArr==null) 
			{
				// The two characters aren't a number; there's a mismatch 
				// between the pattern and date string, so return an error
				// message.

				switch (tokArr[tokInd].token.toLowerCase()) 
				{
					case 'dd': var unit="day"; break;
					case 'mm': var unit="month"; break;
					case 'hh': var unit="hour"; break;
					case 'mins': var unit="minute"; break;
					case 'ss': var unit="second"; break;
				}
				return "Bad " + unit + " \"" + dateStr.substr(strInd,2) + 
				"\".";
			}
			switch (tokArr[tokInd].token.toLowerCase()) 
			{
				case 'dd': intDay=parseInt(matchArr[0],10); break;
				case 'mm': intMonth=parseInt(matchArr[0],10); break;
				case 'hh': intHour=parseInt(matchArr[0],10); break;
				case 'mins': intMin=parseInt(matchArr[0],10); break;
				case 'ss': intSec=parseInt(matchArr[0],10); break;
			}
			break;
			case 'y':
			case 'Y':
			// Extract two or four characters from the date string and if it's
			// a number, save it as the year.Convert two-digit years to four
			// digit years by assigning a century of '19' if the year is >= 
			// cutoffYear, and '20' otherwise.

			if (dateStr.substr(strInd,4).search(/\d{4}/) != -1) 
			{
				// Four digit year.
				intYear=parseInt(dateStr.substr(strInd,4),10);
				strOffset=4;
			}
			else 
			{
				if (dateStr.substr(strInd,2).search(/\d{2}/) != -1) 
				{
					// Two digit year.
					intYear=parseInt(dateStr.substr(strInd,2),10);
					if (intYear>=cutoffYear) 
					{
						intYear+=1900;
					}
					else 
					{
						intYear+=2000;
					}
					strOffset=2;
				}
				else 
				{
					// Bad year; return error.
					return "Bad year \"" + dateStr.substr(strInd,2) + "\". Must be two or four digits.";
				}
			}
			break;
			case 'yy':
			case 'YY':
			// Extract two characters from the date string and if it's a 
			// number, save it as the year.Convert two-digit years to four 
			// digit years by assigning a century of '19' if the year is >= 
			// cutoffYear, and '20' otherwise.

			if (dateStr.substr(strInd,2).search(/\d{2}/) != -1) 
			{
				// Two digit year.
				intYear=parseInt(dateStr.substr(strInd,2),10);
				if (intYear>=cutoffYear) 
				{
					intYear+=1900;
				}
				else 
				{
					intYear+=2000;
				}
				strOffset=2;
			} 
			else 
			{
				// Bad year; return error
				return "Bad year \"" + dateStr.substr(strInd,2) + "\". Must be two digits.";
			}
			break;
			case 'yyyy':
			case 'YYYY':
			// Extract four characters from the date string and if it's a 
			// number, save it as the year.
			if (dateStr.substr(strInd,4).search(/\d{4}/) != -1) 
			{
				// Four digit year.
				intYear=parseInt(dateStr.substr(strInd,4),10);
				strOffset=4;
			}
			else 
			{
				// Bad year; return error.
				return "Bad year \"" + dateStr.substr(strInd,4) + "\". Must be four digits.";
			}
			break;
			case 'mon':
			case 'Mon':
			case 'MON':
			case 'mon_strict':

			// Extract three characters from dateStr and parse them as 
			// lower-case, mixed-case, or upper-case abbreviated months,
			// as appropriate.
			monPat=monPatArr[tokArr[tokInd].token];
			if (dateStr.substr(strInd,3).search(monPat) != -1) 
			{
				intMonth=lowerMonArr[dateStr.substr(strInd,3).toLowerCase()];
			}
			else 
			{
				// Bad month, return error.
				switch (tokArr[tokInd].token) 
				{
					case 'mon_strict': caseStat="lower-case"; break;
					case 'Mon': caseStat="mixed-case"; break;
					case 'MON': caseStat="upper-case"; break;
					case 'mon': caseStat="between Jan and Dec"; break;
				}
				return "Bad month \"" + dateStr.substr(strInd,3) + "\". Must be " + caseStat + ".";
			}
			strOffset=3;
			break;
			case 'month':
			case 'Month':
			case 'MONTH':
			case 'month_strict':
			// Extract a full month name at strInd from dateStr if possible.

			monPat=monthPatArr[tokArr[tokInd].token];
			matchArray=dateStr.substr(strInd).match(monPat);
			if (matchArray==null) 
			{
				// Bad month, return error.
				return "Can't find a month beginning at \"" + dateStr.substr(strInd) + "\".";
			}

			// It's a good month.
			intMonth=lowerMonArr[matchArray[0].substr(0,3).toLowerCase()];
			strOffset=matchArray[0].length;
			break;
			case 'ampm':
			case 'AMPM':
			matchArr=dateStr.substr(strInd).match(/^(am|pm|AM|PM|a\.m\.|p\.m\.|A\.M\.|P\.M\.)/);
			if (matchArr==null) 
			{
				// There's no am/pm in the string.Return error msg.
				return "Missing am/pm designation.";
			}

			// Store am/pm value for later (as just am or pm, to make things
			// easier later).

			if (matchArr[0].substr(0,1).toLowerCase() == "a") 
			{
				// This is am.
				ampm = "am";
			}
			else 
			{
				ampm = "pm";
			}
			strOffset = matchArr[0].length;
			break;
		}
		strInd += strOffset;
		tokInd++;
	}
	if (tokInd != tokArr.length || strInd != dateStr.length) 
	{
		/* We got through the whole date string or format string, but there's 
	 more data in the other, so there's a mismatch. */

		return "\"" + dateStr + "\" is either missing desired information or has more information than the expected format: " + formatStr;
	}

	// Make sure all components are in the right ranges.

	if (intMonth < 1 || intMonth > 12) 
	{
		return "Month must be between 1 and 12.";
	}
	if (intDay < 1 || intDay > 31) 
	{
		return "Day must be between 1 and 31.";
	}

	// Make sure user doesn't put 31 for a month that only has 30 days
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && intDay == 31) 
	{
		return "Month "+intMonth+" doesn't have 31 days!";
	}

	// Check for February date validity (including leap years) 

	if (intMonth == 2) 
	{
		// figure out if "year" is a leap year; don't forget that
		// century years are only leap years if divisible by 400

		var isleap=(intYear%4==0 && (intYear%100!=0 || intYear%400==0));
		if (intDay > 29 || (intDay == 29 && !isleap)) 
		{
			return "February " + intYear + " doesn't have " + intDay + " days!";
		}
	}

	// Check that if am/pm is not provided, hours are between 0 and 23.
	if (ampm == "") 
	{
		if (intHour < 0 || intHour > 23) 
		{
			return "Hour must be between 0 and 23 for military time.";
		}
	}
	else 
	{
		// non-military time, so make sure it's between 1 and 12.

		if (intHour < 1|| intHour > 12) 
		{
			return "Hour must be between 1 and 12 for standard time.";
		}
	}

	// If user specified amor pm, convert intHour to military.
	if (ampm=="am" && intHour==12) 
	{
		intHour=0;
	}
	if (ampm=="pm" && intHour < 12) 
	{
		intHour += 12;
	}
	if (intMin < 0 || intMin > 59) 
	{
		return "Minute must be between 0 and 59.";
	}
	if (intSec < 0 || intSec > 59) 
	{
		return "Second must be between 0 and 59.";
	}
	return new Date(intYear,intMonth-1,intDay,intHour,intMin,intSec);
}


function dateCheck(dateStr,formatStr) 
{
	var myObj = buildDate(dateStr,formatStr);
	if (typeof myObj == "object") 
	{
		// We got a Date object, so good.
		return true;
	}
	else 
	{
		// We got an error string.
		//alert(myObj);
		return false;
	}
}

//Converts the First letter of each word to upper case and rest of the letters to lower case
//Created By Ruchika
function changeCase(frmObj) 
{
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;
	tmpStr = frmObj.value.toLowerCase();
	strLen = tmpStr.length;
	if (strLen > 0)  
	{
		for (index = 0; index < strLen; index++)  
		{
			if (index == 0)  
			{
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
			}
			else 
			{
				tmpChar = tmpStr.substring(index, index+1);
				if (tmpChar == " " && index < (strLen-1))  
				{
					
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);
					postString = tmpStr.substring(index+2,strLen);
					tmpStr = preString + tmpChar + postString;
		        }
			}
		}
	}
	frmObj.value = tmpStr;
}


//Checks the text in text area has exceeded the Maximum length allowed for the field
function checkLength(control,maxLength)
{
	if(control.type=='textarea')
	{
		var str = control.value;
		var len = str.replace(/\r\n/g,'').length;
		var sChangedName = control.name.substring(3);
		sChangedName = getFormattedmsg(sChangedName);
		if(len>maxLength)
		{
			alert("Pleart Enter less than "+maxLength+" characters for "+sChangedName);
			control.focus();
			return false;
		}
		else
			return true;
	}
	else
		return false;
}


<!-- Begin
var Cards = new makeArray(8);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("VisaCard", "4", "13,16");
var VisaCard = Cards[1];
Cards[2] = new CardType("AmExCard", "34,37", "15");
var AmExCard = Cards[2];
Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
var DinersClubCard = Cards[3];
Cards[4] = new CardType("DiscoverCard", "6011", "16");
var DiscoverCard = Cards[4];
Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
var enRouteCard = Cards[5];
Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
var JCBCard = Cards[6];
var LuhnCheckSum = Cards[7] = new CardType();

/*************************************************************************\
CheckCardNumber(form)
function called when users click the "check" button.
\*************************************************************************/
function CheckCardNumber(form) 
{
	//	alert(form.card_verification_number.value);
	var tmpyear;

	if(form.CardType.value=="")
	{
		alert("Please select Credit Card Type");
		form.CardType.focus();
		return false;
	} 
	if (form.CardNumber.value.length == 0) 
	{
		alert("Please enter a Card Number.");
		form.CardNumber.focus();
		return false;
	}

	if (form.card_verification_number.value.length == 0)
	{
		alert("Please enter Card Verification Number.");
		form.card_verification_number.focus();
		return false;
	}
	if(isNaN(form.card_verification_number.value))
	{
		alert("Please enter numeric value of Card Verification Number");
		form.card_verification_number.focus();
		return false;
	}

	if ((form.card_verification_number.value!= "") && (form.card_verification_number.value.length != 3) && ((form.CardType.value == "MasterCard") || (form.CardType.value == "VisaCard") || (form.CardType.value == "DiscoverCard")))
	{
		alert("Please enter 3 digit card verification number only");
		form.card_verification_number.focus();
		return false;
	}

	if ((form.card_verification_number.value!= "") && (form.card_verification_number.value.length != 4) && (form.CardType.value == "AmExCard"))
	{
		alert("Please enter 4 digit card verification number only");
		form.card_verification_number.focus();
		return false;
	}


	if (form.ExpMon.value.length == 0) 
	{
		alert("Please enter the Expiration Month.");
		form.ExpMon.focus();
		return false;
	}
if (form.ExpYear.value.length == 0) 
	{
		alert("Please enter the Expiration Year.");
		form.ExpYear.focus();
		return false;
	}

	

	var d = new Date();
	var curr_year = d.getFullYear();


	if (form.ExpYear.value < curr_year)
	{
		alert("The Expiration Year is not valid.");
		return false;
	}

	if (form.card_holder_name.value.length == 0)
	{
		alert("Please enter Card Holder Name.");
		form.card_holder_name.focus();
		return false;
	}

tmpmonth = form.ExpMon.options[form.ExpMon.selectedIndex].value;
tmpyear = form.ExpYear.options[form.ExpYear.selectedIndex].value;
	// The following line doesn't work in IE3, you need to change it
	// to something like "(new CardType())...".
	// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
	if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) 
	{
		alert("This card has already expired.");
		return false;
	}
	card = form.CardType.options[form.CardType.selectedIndex].value;
	var retval = eval(card + ".checkCardNumber(\"" + form.CardNumber.value + "\", " + tmpyear + ", " + tmpmonth + ");");
	cardname = "";
	if (retval)

	// comment this out if used on an order form
	//alert("This card number appears to be valid.");
		return true;

	else 
	{
		// The cardnumber has the valid luhn checksum, but we want to know which
		// cardtype it belongs to.
		for (var n = 0; n < Cards.size; n++) 
		{
			if (Cards[n].checkCardNumber(form.CardNumber.value, tmpyear, tmpmonth)) 
			{
				cardname = Cards[n].getCardType();
				break;
		   }
		}
		if (cardname.length > 0) 
		{
			alert("This looks like a " + cardname + " number, not a " + card + " number.");
			return false;
		} 
		else 
		{
			alert("This card number is not valid.");
			return false;
		 }
	   }
	}
/*************************************************************************\
Object CardType([String cardtype, String rules, String len, int year, 
                                        int month])
cardtype    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new CardType("Visa", "4", "16");
var AmExCard = new CardType("AmEx", "34,37", "15");
\*************************************************************************/
function CardType() 
{
	var n;
	var argv = CardType.arguments;
	var argc = CardType.arguments.length;

	this.objname = "object CardType";

	var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
	var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
	var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

	this.setCardNumber = setCardNumber;  // set CardNumber method.
	this.setCardType = setCardType;  // setCardType method.
	this.setLen = setLen;  // setLen method.
	this.setRules = setRules;  // setRules method.
	this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

	this.setCardType(tmpcardtype);
	this.setLen(tmplen);
	this.setRules(tmprules);
	if (argc > 4)
	this.setExpiryDate(argv[3], argv[4]);

	this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
	this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
	this.getCardType = getCardType;  // getCardType method.
	this.isCardNumber = isCardNumber;  // isCardNumber method.
	this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
	this.luhnCheck = luhnCheck;// luhnCheck method.
	return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() 
{
	var argv = checkCardNumber.arguments;
	var argc = checkCardNumber.arguments.length;
	var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
	var year = (argc > 1) ? argv[1] : this.year;
	var month = (argc > 2) ? argv[2] : this.month;

	this.setCardNumber(cardnumber);
	this.setExpiryDate(year, month);

	if (!this.isCardNumber())
	{
		return false;
	}

	if (!this.isExpiryDate())
	{
		return false;
	}

	return true;
}
/*************************************************************************\
String getCardType()
return the cardtype.
\*************************************************************************/
function getCardType() 
{
	return this.cardtype;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() 
{
	return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() 
{
	var argv = isCardNumber.arguments;
	var argc = isCardNumber.arguments.length;
	var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
	if (!this.luhnCheck())
	return false;

	for (var n = 0; n < this.len.size; n++)
	if (cardnumber.toString().length == this.len[n]) 
	{
		for (var m = 0; m < this.rules.size; m++) 
		{
			var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
			if (headdigit == this.rules[m])
			return true;
		}
		return false;
	}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate()
{
	var argv = isExpiryDate.arguments;
	var argc = isExpiryDate.arguments.length;

	year = argc > 0 ? argv[0] : this.year;
	month = argc > 1 ? argv[1] : this.month;

	if (!isNum(year+""))
		return false;
		if (!isNum(month+""))
			return false;
			today = new Date();
			expiry = new Date(year, month);
			if (today.getTime() > expiry.getTime())
				return false;
			else
				return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) 
{
	argvalue = argvalue.toString();

	if (argvalue.length == 0)
	return false;

	for (var n = 0; n < argvalue.length; n++)
	if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
	return false;

	return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() 
{
	var argv = luhnCheck.arguments;
	var argc = luhnCheck.arguments.length;

	var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

	if (! isNum(CardNumber)) 
	{
		return false;
	 }

	var no_digit = CardNumber.length;
	var oddoeven = no_digit & 1;
	var sum = 0;

	for (var count = 0; count < no_digit; count++) {
	var digit = parseInt(CardNumber.charAt(count));
	if (!((count & 1) ^ oddoeven)) {
	digit *= 2;
	if (digit > 9)
	digit -= 9;
	}
	sum += digit;
	}
	if (sum % 10 == 0)
	return true;
	else
	return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
	this.size = size;
return this;
}

/*************************************************************************\
CardType setCardNumber(cardnumber)
return the CardType object.
\*************************************************************************/
function setCardNumber(cardnumber) {
	this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
CardType setCardType(cardtype)
return the CardType object.
\*************************************************************************/
function setCardType(cardtype) {
	this.cardtype = cardtype;
return this;
}

/*************************************************************************\
CardType setExpiryDate(year, month)
return the CardType object.
\*************************************************************************/
function setExpiryDate(year, month) {
	this.year = year;
	this.month = month;
return this;
}

/*************************************************************************\
CardType setLen(len)
return the CardType object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
CardType setRules()
return the CardType object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}
//  End -->

//function added by Shuchi Sethi on 03.03.2008 for disabling of postal code if it is being added by anyone from Nepal
//called in 4 files --- admin/add_url.php, admin/edit_url.php, edit_selections.php, payment_submit.php
function disp_postal_code(country_id,frm)
{
	if(country_id == "141") //141 is id of nepal in database
	{
		frm.TN_Postal_Code.value="";
		frm.TN_Postal_Code.disabled=true;

	}
	else 
	{
		if(frm.TN_Postal_Code.disabled == true)
		{
			frm.TN_Postal_Code.disabled=false;
		}
	}
}
function check_postal_code(frm)
{
//	var frm = document.url;

	if((frm.TR_Country.value != "141") && (frm.TN_Postal_Code.value == ""))
	{
		alert("Please enter postal code");
		frm.TN_Postal_Code.focus();
		return false;
	}
	else
	{
		return true;
	}
}
function showDynamicDiv(e,divName)
{
	var obj=window.event? event : e;
	var x = obj.clientX;
	var y = obj.clientY;
	var scr_width = screen.width;
	var scr_height = (document.all)?document.body.scrollTop:window.pageYOffset;
	y = scr_height+270;
	x = scr_width-740;
	/*if((x+240)>=scr_width)
	{
		var extra_width = scr_width*1-x;
		x = scr_width*1-(extra_width+140);
	}
	else*/
	{
		var popup_div = document.getElementById(divName);
		popup_div.style.position='absolute';
		popup_div.style.display='block';
		popup_div.style.visibility='visible';
		popup_div.style.top=y+'px';
		popup_div.style.left=x+'px';
	}
}


function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }



  // Function to validate fields on form submit
  // store_news_category.php
   	function validate()
	{
		if(document.getElementById('news_id').value=='')
		{
			alert("Please enter Id(s)");
			document.getElementById('news_id').focus();
			return false;
		}
		if(document.getElementById('category').value=='')
		{
			alert("Please select a category");
			document.getElementById('category').focus();
			return false;
		}
		return true;
	}

//Function to show Ads (Text Ads, Banner Ads, Banner Bottom Ads )
function getDisplayAds(divName,keyValue,location_id,adType)
{
	var div=divName;
	callAjax(div, "get_display_banner_text_ads.php", {
	params:"keyvalue="+keyValue+"&location="+location_id+"&type="+adType,
	meth:"post",
	async:true,
	//startfunc:"data_loading("+divName+",'<?php echo $docRoot;?>');",
	startfunc:"",
	endfunc:"",
	errorfunc:"ajaxError()" });
}
//End of function
//Function to  increased View count on Click Ads
function increasedClickCount(invoice_id,website_url)
{
	url = "invoice_id="+invoice_id;
	callAjax("", "ads_click_counts.php", {
	params:url,
	meth:"get",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
	//alert(document.getElementById("divTest").innerHTML);
	window.open(website_url,'','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')
}
//End of function

// function to increase directory view
function increaseDirView(id)
{
	url = "id="+id;
	callAjax("", "increaseDirView.php", {
	params:url,
	meth:"get",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });

}
// End Of Function

function data_loading(container_id,docroot)
{
	var div_data=document.getElementById(''+container_id+'');
	if(div_data)
	{
		div_data.innerHTML='<table align="center" valign="middle" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="center" valign="middle"><img align="center" border="0" src="'+docroot+'images/loading.gif"></td></tr></table>';
	}
}
function show_image_loading(container_id)
{
		var div_data=document.getElementById(''+container_id+'');
		if(div_data)
		{
			div_data.innerHTML='<img align="center" border="0" src="images/loading.gif"><br><br>';
		}
}
function display_bottom()
{
	if(document.getElementById('paging_container'))
	{
		document.getElementById('paging_container').style.display='';
	}
	//document.getElementById('bottom_box_container').style.display='inline';
}

function getNews_DayPI(container_id,offset,limit,query,keyvalue,docroot)
{
	var div=container_id;
	var callendFunction='';
	var docroot=docroot;
	var docroot2=docroot.substr(7);
	var d=new Date();
	var y=d.getTime();
	callAjax( div, docroot+"getNews_DayPI.php", {
	params:"offset="+offset+"&limit="+limit+"&query="+query+"&keyvalue="+keyvalue+"&y="+y+"",
	meth:"post",
	async:true,
	startfunc:"data_loading('"+container_id+"',"+"'"+docroot+"'"+");",
	endfunc:"display_bottom();",
	errorfunc:"ajaxError()" });

}
/*****************************************************************
Function are used to add delete favorite news link
*******************************************************************/
//function to submit URL in database and show result	
function deleteFavotiteLink(linkid)
{
	callAjax("spanFovoriteNewsLink", "add_fovorite_link.php", {
	params:"linkid="+linkid+"&action=delete",
	meth:"post",
	async:true,
	startfunc:"show_image_loding_favaorite();",
	endfunc:"",
	errorfunc:"ajaxError()" });	
}
//Function to add favorite news link
function addFavoriteNewsLink()
{
	var obj = document.frm_add_link;
	var link_name = obj.TRNOTHTTPURL_link_name.value;
	callAjax("spanFovoriteNewsLink", "add_fovorite_link.php", {
	params:"link_name="+link_name+"&action=insert",
	meth:"post",
	async:true,
	startfunc:"show_image_loding_favaorite();",
	endfunc:"",
	errorfunc:"ajaxError()" });	
}
//Function to show favorite news link
function showFavoriteNewLink()
{
	callAjax("spanFovoriteNewsLink", "add_fovorite_link.php", {
	params:"&action=view",
	meth:"post",
	async:true,
	startfunc:"show_image_loding_favaorite();",
	endfunc:"",
	errorfunc:"ajaxError()" });	
}

function showHotTopics(hNews_id,subNews_id,key)
{
	callAjax("spanHotTopics", "right_hot_topics.php", {
	params:"hNews_id="+hNews_id+"&subNews_id="+subNews_id+"&key="+key,
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"ajaxError()" });	
}

//Function to validate add favorite news link
function rss_FavoriteNewsLinkValidateForm(frm)
{
	var obj = document.frm_add_link;
	var useid='<?php echo $_SESSION["userid"]; ?>';
	var link_name = obj.TRNOTHTTPURL_link_name.value;
	if(!((link_name.indexOf("http://") >=0) || (link_name.indexOf("https://") >=0 )) )
	{
		link_name="http://"+link_name;
	}
	if(ValidateForm(frm))
	{													
	window.open(link_name,'main','width=600,height=600,location=yes,scrollbars=yes,menubar=yes,resizable=yes');
	}
	else
	{
		return false;
	}
	if(useid!='')
	{
		addFavoriteNewsLink();
		return false;
	}
	else
	{
		document.frm_add_link.TRNOTHTTPURL_link_name.value='http://';
		//document.frm_add_link.action="<?php echo $reDirectUrl;?>"
		//document.frm_add_link.submit();
		return false;
	}	
}
//function to show star image loading
function show_image_loding_favaorite()
{
	var divAttribute=document.getElementById("spanFovoriteNewsLink");
	if(divAttribute)
	{
		divAttribute.innerHTML='<img align="center" border="0" src="images/loading.gif">';
	}
}
/*****************************************************************
End of Function are used to add delete favorite news link
*******************************************************************/
function getNews_Search(container_id,keyvalue,docroot)
{
	var div=container_id;
	var callendFunction='';
	var docroot=docroot;
	var d=new Date();
	var y=d.getTime();
	callAjax( div, "getNews_Search.php", {
	params:"keyvalue="+keyvalue+"&y="+y+"",
	meth:"post",
	async:true,
	startfunc:"data_loading('"+container_id+"',"+"'"+docroot+"'"+");",
	//endfunc:"display_bottom();",
	errorfunc:"ajaxError()" });

}
/***************************************
Function are to show iamges and data in the news section
****************************************/
//function for prevoius and next image
function set_val_news(ar_id,mode,loc)
{
	if(mode == "prev")
	{
		var Pic_reqd = parseInt(document.getElementById("num_img"+ar_id).value) - 1;
		document.getElementById("num_img"+ar_id).value = Pic_reqd;
	}
	else if(mode == "next")
	{
		var Pic_reqd = parseInt(document.getElementById("num_img"+ar_id).value) + 1;
		document.getElementById("num_img"+ar_id).value = Pic_reqd;
	}
	else
	{
		var Pic_reqd=0;
	}
	init_news(Pic_reqd, ar_id,loc);
}
//function to call show_images_news_landing_page.php script
function init_news(img_num, ar_id,loc)
{
	if(img_num=="")
	var img_num=0 // By default
	callAjax( "show_images"+ar_id , "show_images_news_landing_page.php", {
	params:"article_id="+ar_id+"&img_num="+img_num+"&loc="+loc,
	meth:"post",
	async:true,
	//async:false,
	startfunc:"show_image_loding_news("+ar_id+");",
	errorfunc:"ajaxError()" });
}
//function to fetch news by ajax
function getNewsData(article_id,location_id,language,newsType,headnews)
{
	if(headnews=='true')
	{
		var div="divHeadNewsData_"+location_id;
		var filename="get-head-news.php";
	}
	else
	{
		var div="divNewsData_"+location_id;
		var filename="get_landing_news.php";
	}
	if(language==null)
	{
		language='English';
	}
	
	var callendFunction='';
	if(article_id>0)
	{
		callendFunction="set_val_news("+article_id+","+location_id+");"; 			
	}
	callAjax( div, filename, {
	params:"location_id="+location_id+"&language="+language+"&newsType="+newsType,
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:callendFunction,
	errorfunc:"ajaxError()" });
}

//function to show star image loading
function show_image_loding_news(article_id)
{
	var div_name="show_images"+article_id
	var divAttribute=document.getElementById(""+div_name+"");
	if(divAttribute)
	{
		divAttribute.innerHTML='<img align="center" border="0" src="images/loading.gif">';
	}
}
/***************************************
End Function are to show iamges and data in the news section
****************************************/

sfHover = function() {
	var div=document.getElementById("nav");
	//if element exists
	if(div)
	{
		var sfEls = document.getElementById("nav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);



function validateImroveSearch()
{
	var obj = document.improve_search;
	
	if(obj.TR_name.value=="")
	{
		alert("Please enter your name");
		obj.TR_name.focus();
		return false;
	}
	if(obj.TREF_email.value=="")
	{
		alert("Please enter your email");
		obj.TREF_email.focus();
		return false;
	}
	if(!ValidateEMail(obj.TREF_email.value))
	{
		alert("Please enter proper email");
		obj.TREF_email.focus();
		return false;
	}
	if(obj.TR_suggestions.value=="")
	{
		alert("Please enter suggestions");
		obj.TR_suggestions.focus();
		return false;
	}
	return true;
}

<!-- FORM SUBMIT VIA AJAX -->

   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
			//clear_improve_popup();
           
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
   function get(obj,url) {
      var poststr = "TR_name=" + encodeURI( document.getElementById("TR_name").value ) +
                    "&TREF_email=" + encodeURI( document.getElementById("TREF_email").value ) + "&TR_suggestions="+ encodeURI( document.getElementById("TR_suggestions").value );
					
	  makePOSTRequest(url, poststr);
	clear_improve_popup();
   }
   
   function clear_improve_popup()
   {
   		var obj = document.improve_search;
		obj.TR_name.value='';
		obj.TREF_email.value='';
		obj.TR_suggestions.value='';
		document.getElementById('ImpSearchLayer').style.display='none';
   }

//Set Focus on the First Field
/*if(document.forms[0]!='')
{
	
	document.forms[0].elements[0].focus();
}*/


/********************* IS INTEGER ************************/
function isInteger(n) 
{
	return (!isNaN(n)) && (Math.floor(n)==n)
}


/*********************************************************/
function check_amount(amt)
{
	/*if(document.payment.MR_amount_charge.value<amt)
	{
		alert('Please pay minimum amount required:'+amt);
		document.payment.MR_amount_charge.value='';
		document.payment.MR_amount_charge.focus();
		return false;
	}*/
	if(isInteger(amt)==false)
	{
		alert('Please enter amount in round figure');
		document.payment.MR_amount_charge.value='';
		document.payment.MR_amount_charge.focus();
		return false;
	}
	return true;
}

function check_confirm_amount()
{
	if(document.payment.MR_amount_charge.value!=document.payment.MR_amount_charge_confirm.value)
	{
		alert('Confirm amount charge does not match');
		document.payment.MR_amount_charge_confirm.value='';
		document.payment.MR_amount_charge_confirm.focus();
		return false;
	}
	else
	{
		document.getElementById('spanAmt').innerHTML=document.payment.MR_amount_charge_confirm.value;
	}
	return true;
}

<!------------- FUNCTION TO PLAY VIDEO BY MANISH --------------------->
function play_video(player_video,play,embed_tag)
{
	document.getElementById('playerContainer').innerHTML=embed_tag;
	/*var current_video=document.getElementById('current_video').value;
	if(document.getElementById('div'+current_video))
	{
		document.getElementById('div'+current_video).style.display='none'; // HIDE THE CURRENT VIDEO
	}	

	if(play==false)
	{
		// REDIRECTED ON SOURCE SITE, WILL NOT PLAY ON SAME PAGE, SO DISPLAY THE NO VIDEO DIV
		if(document.getElementById('blinkxpreviewplayerdiv'))
		{
			document.getElementById('blinkxpreviewplayerdiv').style.display='none'; // HIDE THE PREVIEW PLAYER PROVIDED BY BLINKX
		}		
		document.getElementById('noVideoDiv').style.display=''; // DISPLAY THE NO VIDEO DIV
	}
	else if(play==true)
	{
		// VIDEO WILL BE PLAYED ON SAME PAGE
		document.getElementById('current_video').value=player_video; // SET THE HIDDEN FIELD VALUE
		if(document.getElementById('noVideoDiv'))
		{	
			document.getElementById('noVideoDiv').style.display='none'; // HIDE THE NO VIDEO DIV
		}	
		document.getElementById('div'+player_video).style.display=''; // DISPLAY THE CLICKED VIDEO
	}	*/

}	

//Function to Store Suggestion Keyword
function storeSuggetionKeywords(query,root)
{
	if(root==null)
	{
		root='';
	}
	callAjax("",root+"web/store_suggetion_keywords.php", {
	params:"query="+query+"",
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
	return false;	
}
//Function to Set Classified City
function setClassifiedCity(url,countryid,cityid,category_id,csubcatid)
{
	if(url=='' || url==null)
	{
		var url='classifieds_landing.php'
	}
	callAjax("", "set_classified_city.php", {
	params:"countryid="+countryid+"&cityid="+cityid+"&category_id="+category_id+"&csubcatid="+csubcatid+"&action=setcity",
	meth:"GET",
	async:true,
	startfunc:"",
	endfunc:"endClassifiedSettingCity('"+url+"','"+category_id+"','"+csubcatid+"');",
	errorfunc:"" });
}//End Classified setting Function City
function endClassifiedSettingCity(url,category_id,csubcatid) 
{
	location.href = url+"?category_id="+category_id+"&csubcatid="+csubcatid;
}

//Function to Change News Langugage
function changeNewsLanguage(language)
{
	callAjax("", "set_lang.php", {
	params:"language="+language,
	meth:"POST",
	async:true,
	startfunc:"",
	endfunc:"endChangeNewsLanguage();",
	errorfunc:"" });
}//End Classified setting Function City
function endChangeNewsLanguage() 
{
	location.href = 'news.php';
}
//Function to Select Classified Category
function select_classified_category(div)
{
	if(div==null || div=='')
	{
		div='';
	}
	callAjax(div, "select_classified_category.php", {
	params:"",
	meth:"POST",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
}
//Show And Hide More Country
function showMoreCategory(catgory_id)
{
	var div=document.getElementById("category_id_"+catgory_id);
	var more_div=document.getElementById("more_category_id_"+catgory_id);
	moreCategoryDiv[moreArrayCount]=catgory_id;
	moreArrayCount++;
	if(more_div)
	{
		more_div.style.display='none';
	}
	if(div)
	{
		div.style.display='block';
	}	
}
function closeMoreCategoryDiv()
{
	for(var i=0;i<moreCategoryDiv.length;i++)
	{
		var catgory_id=moreCategoryDiv[i]
		var div=document.getElementById("category_id_"+catgory_id);
		var more_div=document.getElementById("more_category_id_"+catgory_id);
		if(more_div)
		{
			more_div.style.display='block';
		}
		if(div)
		{
			div.style.display='none';
		}	
	}
}
//Function to Select Classified Country and City
function select_classified_city(div)
{
	if(div==null || div=='')
	{
		div='';
	}
	callAjax(div, "select_classified_city.php", {
	params:"",
	meth:"POST",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
}
//Show And Hide More Country
function showMoreCities(div1,div2)
{
	var showDiv1=document.getElementById(""+div1+"");
	var showDiv2=document.getElementById(""+div2+"");	
	if(showDiv1)
	{	
		showDiv1.style.display='none';		
	}
	if(showDiv2)
	{
		showDiv2.style.display='block';		
	}
	if(div1=='set_more_loc')
	{
		resizeDiv(0,"Layer1");
	}
	else
	{
		resizeDiv(1,"Layer1");
	}
}
function resizeDiv(val,divName)
{
	var divLayer=document.getElementById(""+divName+"");
	if(divLayer)
	{
		if(val==1)
		{
			divLayer.style.left=80;
			divLayer.style.top=100;
		}
		else if(val==0)
		{
			
			divLayer.style.left=120;
			divLayer.style.top=160;
		}
	}
}

//Function to Select Classified Category for new listing page
function select_new_listing_classified_category(div)
{
	if(div==null || div=='')
	{
		div='';
	}
	callAjax(div, "select_new_posting_category.php", {
	params:"",
	meth:"POST",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
}

function fetch_image_head_news(container,hNews_id,subNews_id)
{
	var div=container;
	callAjax(div, "fetch_image_head_news.php", {
	params:"hNews_id="+hNews_id+"&subNews_id="+subNews_id,
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
}

function hot_election_news(page,container,language,type)
{
	var div=container;
	var parameters='';
	if(page!='' && typeof(page)!='undefined') parameters+=parameters+"&page="+page;
	if(container!='' && typeof(container)!='undefined') parameters+=parameters+"&container="+container;
	if(language!='' && typeof(language)!='undefined') parameters+=parameters+"&language="+language;
	if(type!='' && typeof(type)!='undefined') parameters+=parameters+"&type="+type;

	callAjax(div, "hot_election_news.php", {
	params:parameters,
	meth:"post",
	async:true,
	startfunc:"data_loading('"+div+"','');",
	endfunc:"",
	errorfunc:"" });
}

function storeYahooResults(query,start,root)
{
	if(root==null)
	{
		root='';
	}
	callAjax("",root+"web/storeYahooResults.php", {
	params:"query="+query+"&start="+start,
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
	return false;	
}

function storeImageResults(query,start,root,source_type)
{
	if(root==null)
	{
		root='';
	}
	callAjax("",root+"codelibrary/inc/image_import.php", {
	params:"query="+query+"&start="+start+"&source_type="+source_type,
	meth:"post",
	async:true,
	startfunc:"",
	endfunc:"",
	errorfunc:"" });
	return false;	
	
}