	/*
	*	Validateing whether Field contain Numeric Data
	*/

	function validateFieldIsNumeric(txtField,errorMessage)
	{
		  var value=txtField.value;
		  var expression = new RegExp(/^\d+$/);//exression to find out no exist.
		  var test=expression.test(value);
	  	  if(!test && value.length!=0)
		  {
			alert(errorMessage);
			txtField.focus();
			return false;
		  }
		  return true;
	}

	function isInteger(value)
	{
		  var expression = new RegExp(/^[\+\-]?\d*$/);//exression to find out no exist.
		  var test=expression.test(value);
  	  if(!test && value.length!=0)
		  {
				return false;
		  }
		  return true;
	}
	function isDecimal(value)
	{
		  var expression = new RegExp(/^[\+\-]?\d*\.?\d*$/);//exression to find out no exist.
		  var test=expression.test(value);
  	  if(!test && value.length!=0)
		  {
				return false;
		  }
		  return true;
	}

	function validateFieldIsEmail(txtField,errorMessage)
	{
		  var value=txtField.value;
		  var expression = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);//exression to find out no exist.
		  var test=expression.test(value);
	  	  if(!test && value.length!=0)
		  {
			alert(errorMessage);
			txtField.focus();
			return false;
		  }
		  return true;
	}

	function isEmail(value)
	{
		  var expression = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);//exression to find out no exist.
		  var test=expression.test(value);
  	  if(!test && value.length!=0)
		  {
				return false;
		  }
		  return true;
	}



	function SetAllCheckBoxes(FormName, FieldName, CheckValue)
	{
		if(!document.forms[FormName])
			return;
		var objCheckBoxes = document.forms[FormName].elements[FieldName];
		if(!objCheckBoxes)
			return;
		var countCheckBoxes = objCheckBoxes.length;
		if(!countCheckBoxes)
			objCheckBoxes.checked = CheckValue;
		else
			// set the check value for all check boxes
			for(var i = 0; i < countCheckBoxes; i++)
				objCheckBoxes[i].checked = CheckValue;
	}

	function checkAll(formName,chkBoxName)
	{
		if(document.forms[formName].chkAll.checked == true)
		{
			SetAllCheckBoxes(formName,chkBoxName, true);
		}
		else
		{
			SetAllCheckBoxes(formName,chkBoxName, false);
		}
	}
	//open a window
	function my_win1(intProductID)
	{
		window.open('pm_setSortOrder.cfm?intProductID='+intProductID,'mywindow1','width=400,height=400,left=10,top=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=no');
	} //END IF

	//validating textarea field
	//parameter : inputField = input field reference
	//						formName 	 = name of form
	//						strCountField = name of count field
	//						maxNumber			= maximum allowed number
	function countDown(inputField,formName,strCountField,maxNumber)
	{
		var inputStr;
		var strlength;
		var inputStr=inputField.value
			if (inputStr != "")
		{
			strlength= inputStr.length;
			if (strlength > maxNumber )
			{
				inputField.value=inputStr.substring(0,maxNumber);
				charleft = 0;
			}
			else	
			{
				charleft = maxNumber - strlength;
			}
			document.forms[formName].elements[strCountField].value=charleft;
		}	
	}
	//for hiding div on click
	function hideDiv(chkBox,dvID)
	{		
		var dv=document.getElementById(dvID);
		dv.style.display = "none";
		if (!chkBox.checked)
		{
			dv.style.display = "none";
		}
		else if(chkBox.checked)
		{
			dv.style.display = "";
		}
	}//end function
	
	//general validation routine for empty field
	function isEmpty(rField,formIndex)
	{
		
		for (var n_key in rField) 
		{
			var obj=document.forms[formIndex][n_key];
			if(typeof obj=='undefined')
			{	
				alert("Error: ["+n_key+"] not defined in the form");
				return false;
			}
			if(obj.value=="" && rField[n_key]['r'])
			{
				alert('Error! Empty [ '+rField[n_key]['name']+' ] field is not allowed');
				obj.focus();
				return false;
			}
			switch(rField[n_key]['type'])
			{
				case 'email':
					if(!isEmail(obj.value))
					{
						alert('Error! in-valid [ '+rField[n_key]['name']+' ]');
						obj.focus();
						return false;
					}
					break;
				case 'date':
					if(!isDate(obj.value))
					{
						alert('Error! in-valid [ '+rField[n_key]['name']+' ]');
						obj.focus();
						return false;
					}
					break;
				case 'select':
					if(obj.selectedIndex==0)
					{
						alert('Error! in-valid [ '+rField[n_key]['name']+' ]');
						obj.focus();
						return false;
					}
					break;
				case 'integer':
					if(!isInteger(obj.value))
					{
						alert('Error! in-valid [ '+rField[n_key]['name']+' ]');
						obj.focus();
						return false;
					}
					break;
				case 'real':
					if(!isDecimal(obj.value))
					{
						alert('Error! in-valid [ '+rField[n_key]['name']+' ]');
						obj.focus();
						return false;
					}
					break;

			}//end switch
			//checking length
		}
		return true;
	}
//clone of isEmpty with other
	//general validation routine for empty field
	function isError(rField,formIndex,msgBoxID)
	{
		if(typeof msgBoxID == 'undefined')
			msgBoxID='messages';
		var error = new Array();
		for (var n_key in rField) 
		{
			var isEmpty=false;
			var obj=document.forms[formIndex][n_key];
			if(typeof obj=='undefined')
			{	
				alert("Error: ["+n_key+"] not defined in the form");
				return false;
			}
			if(rField[n_key]['r']==true && rField[n_key]['type']=='checkbox' )
			{
                                if(!obj.checked)
                                    error.push('<li>[ '+rField[n_key]['name']+' ] Required</li>');
				//obj.focus();
				//return false;
			}
                        if(obj.value=="" && rField[n_key]['r']==true && rField[n_key]['type']!='select' )
			{
				isEmpty=true;
				error.push('<li>Empty [ '+rField[n_key]['name']+' ] field is not allowed </li>');
				//obj.focus();
				//return false;
			}
			switch(rField[n_key]['type'])
			{
				case 'text':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					//checking minimum length of string
					if (typeof rField[n_key]['mn']!= 'undefined' && obj.value.length < rField[n_key]['mn'] ) 
					{
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be '+rField[n_key]['mn']+' characters or more</li>');
					}
					//checking maximum length of string
					if (typeof rField[n_key]['mx'] != 'undefined' && obj.value.length > rField[n_key]['mx']) 
					{
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be no longer than '+rField[n_key]['mx']+' characters</li>');
					}
					//checking equvillance
					if(typeof rField[n_key]['eq']!= 'undefined')
					{
							m_key=rField[n_key]['eq'];
							var mObj=document.forms[formIndex][m_key];
							if(typeof mObj == 'undefined')
							{	
								alert("Error: [ "+rField[n_key]['eq']+" ] not defined in the form");
								return false;
							}
							if(obj.value!=mObj.value)
								error.push('<li>Value of [ '+rField[n_key]['name']+' ] and [ '+rField[m_key]['name']+' ] are not matched</li>');
					}
					break;
				case 'number':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					if(typeof rField[n_key]['dec'] == 'undefined' && !isInteger(obj.value))
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be a valid number</li>');
					else if(!isDecimal(obj.value))
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be a valid decimal number</li>');
					//checking minimum length of string
					if (typeof rField[n_key]['mn']!= 'undefined' && obj.value.length < rField[n_key]['mn'] ) 
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be '+rField[n_key]['mn']+' or more</li>');
					//checking maximum length of string
					if (typeof rField[n_key]['mx'] != 'undefined' && obj.value.length > rField[n_key]['mx']) 
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be no more than '+rField[n_key]['mx']+'</li>');
					//checking eqvillance, greater or less
					if(typeof rField[n_key]['cmp']!= 'undefined')
					{
							m_key=rField[n_key]['cmp'];
							var mObj=document.forms[formIndex][m_key];
							if(typeof mObj == 'undefined')
							{	
								alert("Error: [ "+rField[n_key]['eq']+" ] not defined in the form");
								return false;
							}
							//alert(obj.value+"<="+mObj.value);
							switch (rField[n_key]['op'])
							{
									case 'eq':
										if(parseInt(obj.value)!=parseInt(mObj.value))
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] and [ '+rField[m_key]['name']+' ] are not matched</li>');
										break;
									case 'lt':
										if(parseInt(obj.value)>parseInt(mObj.value))
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] must be less then [ '+rField[m_key]['name']+' ] </li>');
										break;
									case 'gt':
										//alert (obj.value+"<="+mObj.value+" "+(obj.value<=mObj.value?'true':'false'));
										if(parseInt(obj.value)<=parseInt(mObj.value))
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] must be greater then [ '+rField[m_key]['name']+' ] </li>');
										break;
							}
					}
					break;
				case 'email':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					
					if(!isEmail(obj.value))
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					break;
				case 'date':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					if(!isDate(obj.value))
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					//mm/dd/yyyy
					var dt= formatDate(new Date(obj.value));
					//checking minimum length of string
                    //alert (formatDate(rField[n_key]['mn']) + "   " + dt);
					
					if (typeof rField[n_key]['mn']!= 'undefined' && dt < formatDate(rField[n_key]['mn'])) 
						error.push(	'<li>[ '+rField[n_key]['name']+' ]  must be '+formatDate(rField[n_key]['mn'])+' or greater</li>');
					//checking maximum length of string
					if (typeof rField[n_key]['mx'] != 'undefined' && dt >= formatDate(rField[n_key]['mx'])) 
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be less than '+formatDate(rField[n_key]['mx'])+'</li>');

					break;
				case 'select':
					//checking wheter multiple select type is multiple
					if (typeof rField[n_key]['ln']!= 'undefined') 
					{
						var isSelect=0;
						for(i=0;i<obj.options.length;i++)
						{
							if(obj.options[i].selected)
							{
								isSelect++;
								if(isSelect==rField[n_key]['ln'])
									break;
							}
						}
						if(isSelect==0)
							error.push(	'<li>Atleast '+rField[n_key]['ln']+' option must be selected for [ '+rField[n_key]['name']+' ] </li>');
					}
					else if(obj.selectedIndex==0)
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					break;
			}//end switch
		}
		if(error.length > 0)
		{
			error.push("</ul>");
			var sErrors="<div id='errors'>";
			sErrors+='<b>Following Errors have been found:</b> <br><ul class="errorRed">';
			for(i=0;i<error.length;i++)
			{
					sErrors+=error[i];
			}
			sErrors+="</div>";
			document.getElementById(msgBoxID).innerHTML=sErrors;
		}
		return (error.length > 0);
	}
//end clone
/* swapping the element of select list from one to another */

	function swap(fromList, toList)
	{
		var oFromList=document.getElementById(fromList);
		var oToList=document.getElementById(toList);
		var iSelected;
		var fromIndex;
		var limit=oFromList.length
		for(i=0;i<oFromList.length;i++)
		{
			if(oFromList.options[i].selected)
			{
				//oFormList.options[i].selected = false;
        iSelected=oFromList.selectedIndex;
        fromIndex=oFromList.options[iSelected].index;
				oToList.options[oToList.length]=new Option(oFromList.options[iSelected].text,oFromList.options[iSelected].value);
				oFromList.options[fromIndex]=null;
				i--;/* make the loop go through them all */
			}
		}
	}

<!-- Begin
function addBookmark(url,title)
{
	if (window.sidebar) 
	{ // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} 
	else if( window.external ) 
	{ // IE Favorite
		window.external.AddFavorite( url, title); 
	}
	else if(window.opera && window.print) 
	{ // Opera Hotlist
		return true; 
	}
	else
		alert("Please press ctrl+D to add this in your favourite");
}
//  End -->
<!-- Begin
function confirmDelete(formName,entityName,id,field,formField)
{
		//alert(document.forms[formName].action);
		if(!field)
		{
				field='delete';
		}

		if((typeof document.forms[formName][formField] != 'undefined')&&(document.forms[formName][formField].type=='checkbox' || typeof document.forms[formName][formField].length != 'undefined'))
		{
			var rCheck=document.forms[formName][formField]
			var ischeck=false
			//determining whether it is array or not
			if(typeof rCheck.length != 'undefined')
			{
				for (i=0;i<rCheck.length;i++)
				{
					if(rCheck[i].checked)
					{
						ischeck=true;
						break;
					}
				}
			}
			else
			{
				//if only one record present
				if(rCheck.checked)
					ischeck=true;
			}
			if(!ischeck)
			{
				alert("No selection found! please select "+entityName+" by click on checkbox");
				return false;
			}
		}
		else
		{
			return false;
		}
		if(confirm('Are you sure you want to delete '+entityName))
		{
			document.forms[formName].action+="&"+field+"="+id;
			document.forms[formName].method="POST"
			document.forms[formName].submit();
			return true;
		}
		return false;
}
//  End -->
function popUp(strURL,strType,strHeight,strWidth) {
	centerX = (screen.width - strWidth )/2;
	centerY = (screen.height - strHeight)/2;	
	var strOptions="";
	if (strType=="console") strOptions="resizable,height="+strHeight+",width="+strWidth+", left="+centerX+", top="+centerY;
	if (strType=="fixed") strOptions="status,height="+strHeight+",width="+strWidth+", left="+centerX+", top="+centerY;
	if (strType=="elastic") strOptions="scrollbars,resizable,height="+strHeight+",width="+strWidth+", left="+centerX+", top="+centerY;
	window.open(strURL, 'newWin', strOptions);
}
// simplePreload( '01.gif', '02.gif' ); 
function simplePreload()
{ 
	var args = simplePreload.arguments;
  document.imageArray = new Array(args.length);
  for(var i=0; i<args.length; i++)
  {
    document.imageArray[i] = new Image;
    document.imageArray[i].src = args[i];
  }
}

//more validation with row combination
	function isError1(rField,formIndex,msgBoxID)
	{
		if(typeof msgBoxID == 'undefined')
			msgBoxID='messages';
		var error = new Array();
		var isError=false;
		$("ul[@class=errorRed]").remove();
		for (var n_key in rField) 
		{
			var isEmpty=false;
			var obj=document.forms[formIndex][n_key];
			if(typeof obj=='undefined')
			{	
				alert("Error: ["+n_key+"] not defined in the form");
				return false;
			}
			if(obj.value=="" && rField[n_key]['r']==true && rField[n_key]['type']!='select' )
			{
				isEmpty=true;
				error.push('<li>Empty [ '+rField[n_key]['name']+' ] field is not allowed </li>');
				//obj.focus();
				//return false;
			}
			switch(rField[n_key]['type'])
			{
				case 'text':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					//checking minimum length of string
					if (typeof rField[n_key]['mn']!= 'undefined' && obj.value.length < rField[n_key]['mn'] ) 
					{
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be '+rField[n_key]['mn']+' characters or more</li>');
					}
					//checking maximum length of string
					if (typeof rField[n_key]['mx'] != 'undefined' && obj.value.length > rField[n_key]['mx']) 
					{
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be no longer than '+rField[n_key]['mx']+' characters</li>');
					}
					//checking equvillance
					if(typeof rField[n_key]['eq']!= 'undefined')
					{
							m_key=rField[n_key]['eq'];
							var mObj=document.forms[formIndex][m_key];
							if(typeof mObj == 'undefined')
							{	
								alert("Error: [ "+rField[n_key]['eq']+" ] not defined in the form");
								return false;
							}
							if(obj.value!=mObj.value)
								error.push('<li>Value of [ '+rField[n_key]['name']+' ] and [ '+rField[m_key]['name']+' ] are not matched</li>');
					}
					break;
				case 'number':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					if(typeof rField[n_key]['dec'] == 'undefined' && !isInteger(obj.value))
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be a valid number</li>');
					else if(!isDecimal(obj.value))
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be a valid decimal number</li>');
					//checking minimum length of string
					if (typeof rField[n_key]['mn']!= 'undefined' && obj.value.length < rField[n_key]['mn'] ) 
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be '+rField[n_key]['mn']+' or more</li>');
					//checking maximum length of string
					if (typeof rField[n_key]['mx'] != 'undefined' && obj.value.length > rField[n_key]['mx']) 
						error.push(	'<li>Value for [ '+rField[n_key]['name']+' ] must be no more than '+rField[n_key]['mx']+'</li>');
					//checking eqvillance, greater or less
					if(typeof rField[n_key]['cmp']!= 'undefined')
					{
							m_key=rField[n_key]['cmp'];
							var mObj=document.forms[formIndex][m_key];
							if(typeof mObj == 'undefined')
							{	
								alert("Error: [ "+rField[n_key]['eq']+" ] not defined in the form");
								return false;
							}
							switch (rField[n_key]['op'])
							{
									case 'eq':
										if(obj.value!=mObj.value)
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] and [ '+rField[m_key]['name']+' ] are not matched</li>');
										break;
									case 'lt':
										if(obj.value>mObj.value)
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] must be less then [ '+rField[m_key]['name']+' ] </li>');
										break;
									case 'gt':
										if(obj.value<mObj.value)
											error.push('<li>Value of [ '+rField[n_key]['name']+' ] must be greater then [ '+rField[m_key]['name']+' ] </li>');
										break;
							}
					}
					break;
				case 'email':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					
					if(!isEmail(obj.value))
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					break;
				case 'date':
					if(obj.value=="" && rField[n_key]['r']==false)	break;
					if(!isDate(obj.value))
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					
					break;
				case 'select':
					//checking wheter multiple select type is multiple
					if (typeof rField[n_key]['ln']!= 'undefined') 
					{
						var isSelect=0;
						for(i=0;i<obj.options.length;i++)
						{
							if(obj.options[i].selected)
							{
								isSelect++;
								if(isSelect==rField[n_key]['ln'])
									break;
							}
						}
						if(isSelect==0)
							error.push(	'<li>Atleast '+rField[n_key]['ln']+' option must be selected for [ '+rField[n_key]['name']+' ] </li>');
					}
					else if(obj.selectedIndex==0)
					{
						error.push('<li>In-valid [ '+rField[n_key]['name']+' ] </li>');
					}
					break;
			}//end switch
			if(error.length > 0)
			{
				error.push("</ul>");
				var sErrors='<ul class="errorRed">';
				for(i=0;i<error.length;i++)
				{
						sErrors+=error[i];
				}
				$(document.getElementsByName(n_key)).after(sErrors);
				var error = new Array();
				isError=true;
				//document.getElementById(msgBoxID).innerHTML=sErrors;
			}
		}//end for
		return isError;
	}
