/** Row color change function  start */
var mark_color 		= 	'#fdf5d2'//'#c1c1ff'
var current_row 	=	'#aad4f0' //'#e8e8e8'
function row_in(row)
{
	row.style.cursor='hand';
	if( row.style.backgroundColor != mark_color )
		row.style.backgroundColor = current_row
}

function row_out(row)
{
	if( row.style.backgroundColor != mark_color )
		row.style.backgroundColor = ''
}

function setColor(row)
{
	if( row.style.backgroundColor == current_row )
		row.style.backgroundColor = mark_color
	else if ( row.style.backgroundColor == mark_color )
		row.style.backgroundColor = current_row
}

/** Row color change function  End */

function ValidatorTrim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}

var dtCh= "/";
var minYear=01;
var maxYear=99;
function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checklength(obj,len)
{
    var temp = obj.value;
    if(temp.length < len)
        return false;
    return true;
}
function checkEmail_old(strng)
{
    var error = "";
    if (strng == "")
        {
        error = "You did not enter an email-address.\n";
        }
    var emailFilter=/^.+@.+\..{2,4}$/;
    if (!(emailFilter.test(strng)))
        {
        error = "Please enter a valid email address.\n";
        }
    var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
    if(strng.match(illegalChars))
        {
        error = "The email address contains illegal characters.\n";
        }
    return error;
}
function checkEmail(email)
{
  var error = "";
  if(email.length <= 0)
  {
    error = "You did not enter an email-address.\n";
    return error;
  }
  var splitted = email.match("^(.+)@(.+)$");
  if(splitted == null)
  {
      error = "Please enter a valid email address.\n";
      return error;
  }
  else
  {
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null)
      {
          error = "Please enter a valid email address.\n";
          return error;
      }
    }
    if(splitted[2] != null)
    {
      if((splitted[2]).indexOf(".")<=0)
      {
          error = "Please enter a valid email address.\n";
          return error;
      }
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null)
      {
          var regexp_ip =/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
          if(splitted[2].match(regexp_ip) == null)
          {
              error = "Please enter a valid email address.\n";
              return error;
          }
      }
      return error;
    }
  }
  error = "Please enter a valid email address.\n";
  return error;
}
function checkEmailX(strng,fieldcaption)
{
    var error = "";
    if (strng == "")
        {
        error = "You did not enter an "+fieldcaption+".\n";
        }
    var emailFilter=/^.+@.+\..{2,4}$/;
    if (!(emailFilter.test(strng)))
        {
        error = "Please enter a valid "+fieldcaption+".\n";
        }
    var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
    if(strng.match(illegalChars))
        {
        error = fieldcaption+" contains invalid characters.\n";
        }
    return error;
}

//Link Rollover starts here
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_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_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];}
}
//link rollover ends here

//pre load images scrip starts here
var myimages=new Array()
function preloadimages()
{
    for (i=0;i<preloadimages.arguments.length;i++)
    {
        myimages[i]=new Image()
        myimages[i].src=preloadimages.arguments[i]
    }
}
function alwaysontop()
{
    window.focus();
}
function isInt(varvalue)
{
	var regexpINT = /\D/;
	return !regexpINT.test(varvalue);
}
function isIP(varvalue)
{
	var regexpIP = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
	return regexpIP.test(varvalue);
}
function isSelected_Form_CheckBoxArray(formname,objname)
{
	var chkflg,strmessageid,url,returl;
	strmessageid="";
	chkflg=false;
	for(j=0; j<document.forms.length;j++)
	{
		if(document.forms[j].name==formname)
		{
			for (i=0;i<document.forms[j].elements.length;i++)
			{
				if (document.forms[j].elements[i].name==objname)
				{
					if (document.forms[j].elements[i].checked)
					{
						chkflg=true;
						break;
					}
				}
			}
		}
	}
	return chkflg;
}


/*******************************************************************************/
//added by chirag
//purpose: creates modaldialog for passed url
var ModalDialogWindow;
var ModalDialogInterval;
var ModalDialog = new Object;
ModalDialog.value = '';
ModalDialog.eventhandler = '';

function popupModalDialog(popupurl,width,height)
{
	if(typeof(width)=='undefined') width=550;
	if(typeof(height)=='undefined') height=550;

	if(window.showModalDialog)
	{
		window.showModalDialog(popupurl,window,'dialogWidth:'+width+'px;dialogHeight:'+height+'px;scrollbars:yes;location:no;status:no;maximize:yes;help:no;');
	}
	else
	{
		ModalDialogWindow=window.open(popupurl,window,'width='+width+',height='+height+',scrollbars=yes,location=no,status=no');
		ModalDialogInterval = window.setInterval("ModalDialogMaintainFocus()",1);
	}
}

function ModalDialogMaintainFocus()
{
	try
	{
		if (ModalDialogWindow.closed)
		{
			window.clearInterval(ModalDialogInterval);
			return;
		}
		ModalDialogWindow.focus();
	}
	catch (everything) {   }
}

function setWindowSize(w,h)
{
 if (parseInt(navigator.appVersion)>3)
 {
   if (navigator.appName=="Netscape")
   {
    top.outerWidth=w;
    top.outerHeight=h;
   }
   else top.resizeTo(w,h);
 }
}
function setActiveStyleSheet(title) {
   var i, a, main;
   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     if(a.getAttribute("rel").indexOf("style") != -1
        && a.getAttribute("title")) {
       a.disabled = true;
       if(a.getAttribute("title") == title) a.disabled = false;
     }
   }
}

function validateURL(urlstring)
{
	if (urlstring != '')
	{
		var Url="^(ftp|https?):\/\/(www\.)?[A-Za-z0-9\-_]\.*$";
		var tempURL=urlstring;
		var matchURL=tempURL.match(Url);
		if(matchURL==null)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return true;
	}
}

function validateInputStr(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = '#$%^*\~`<>\\?\"';
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}

function validateInputStrV2(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = '#$%^*\~`<>\\?\"';
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.+";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}

function validateInputStrV3(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = '$%^*\~`<>\\?\"';
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.+#";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}


function validateAlphaNumeric(fieldValue)
{
	if (fieldValue.length<1)
	{
		return true;
	}
	chk1=".-'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ";
	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}

function ValidateSelectMBlank(formvar,fld)
{
	var mselflg=false;
	for(imsel=0;imsel<document.forms[formvar].elements[fld].length;imsel++)
	{
		if(document.forms[formvar].elements[fld].options[imsel].selected && document.forms[formvar].elements[fld].options[imsel].value!="")
		{
			mselflg=true;
			break;
		}
	}
	return mselflg;
}

function validateFloatNumber(fieldValue)
{
	if (fieldValue.length<1)
	{
		return true;
	}
	chk1="1234567890.";
	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}

function validateZIP(field) 
{
	var valid = "0123456789-";
	var hyphencount = 0;
	
	if (field.length!=5 && field.length!=6 && field.length!=10) 
	{
		//alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return "Please enter your 5 digit or 6 digit or 5 digit+4 zip code.";
		return false;
	}
	for (var i=0; i < field.length; i++) 
	{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") 
		{
			//alert("Invalid characters in your zip code.  Please try again.");
			return "Invalid characters in your zip code.  Please try again.";
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) 
		{
			//alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return "The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.";
			return false;
	   }
	}
	return true;
}

/** checkbox function start */
function ChkValidate(frm,chkname){
	var validflag = false;
	for (i=0;i<document.forms[frm].elements.length;i++)
	{
		if (document.forms[frm].elements[i].id == chkname && document.forms[frm].elements[i].checked)
		{
			validflag = true;
			break;
		}
	}
	return validflag;
}
function chk_uncheck(frm,chkname,chkallobj){
	if(chkallobj.checked == true){
		checkAll(frm,chkname);
	} else {
		uncheckAll(frm,chkname)
	}
	return true;
}
function checkAll(frm,chkname)
{
     var docF=document.forms[frm];
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=true;
     }
	 return true;
}
function uncheckAll(frm,chkname)
{
     var docF=document.forms[frm];
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=false;
     }
	 return true;
}
function checkState(frm,chkname,chkallname)
{
	var flg=true;
	var docF=document.forms[frm];
    for(var i=0;i<docF.elements.length;i++)
    {
       if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
		{
	  		if(docF.elements[i].checked==false)
			{
				flg=false;
				break;
			}
		 }
     }
     document.getElementById(chkallname).checked=flg;
     return true;
}
/** checkbox function end */

/** state and city js function starts */
function fillCountryState(selectobj,country_id,selected_id)
{
	selectobj.length=0;
	selOpt=new Option("Select","0");
	eval('selectobj.options[0]=selOpt');
	if (country_id > 0 && state_arr[country_id] != undefined)
	{
		if (state_arr[country_id]['ID'].length > 0)
		{
			for(i=1; i < state_arr[country_id]['ID'].length; i++)
			{
				var disp=state_arr[country_id]['STATE'][i];
				var val=state_arr[country_id]['ID'][i];

				selOpt=new Option(disp,val);
				eval('selectobj.options[i]=selOpt');

				if(selected_id == val)
					selectobj.selectedIndex=i;
			}
		}
	}
}

function fillStateCity(selectobj,stateid,selected_id)
{
	selectobj.length=0;
	selOpt=new Option("Select","0");
	eval('selectobj.options[0]=selOpt');
	if (stateid > 0 && city_arr[stateid] != undefined)
	{
		if (city_arr[stateid]['ID'].length > 0)
		{
			for(i=1; i < city_arr[stateid]['ID'].length; i++)
			{
				var disp=city_arr[stateid]['CITY'][i];
				var val=city_arr[stateid]['ID'][i];

				selOpt=new Option(disp,val);
				eval('selectobj.options[i]=selOpt');

				if(selected_id == val)
					selectobj.selectedIndex=i;
			}
		}
	}
}

/** state and city js function ends */

function MoveOption(objSourceElement, objTargetElement,flag)   
{
	var aryTempSourceOptions = new Array();        
	var x = 0;               
 	//looping through source element to find selected options       
	for (var i = 0; i < objSourceElement.length; i++) {           
		if (objSourceElement.options[i].selected)
		{   
			//if(flag != "D")
			//{    
				var bln=true;
				for (var j = 0; j < objTargetElement.length; j++)
				{
					 if(objTargetElement.options[j].value == objSourceElement.options[i].value)
					 {
					 	bln=false;
					 }	
				}
				if(bln)
				{	        
					//need to move this option to target element               
					var intTargetLen = objTargetElement.length++;                
					objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;                
					objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;
				}	           
			//}
			//objSourceElement.options[i].selected=false;	
	 	}  
		          
		else {
			//if(flag=="D")
			//{              
				//storing options that stay to recreate select element                
				var objTempValues = new Object();               
				objTempValues.text = objSourceElement.options[i].text;                
				objTempValues.value = objSourceElement.options[i].value;                
				aryTempSourceOptions[x] = objTempValues;                
				x++;           
			//}	
		}
 	}  
	
	//if(flag=="D")
	//{               
		//resetting length of source        
		objSourceElement.length = aryTempSourceOptions.length;        
		//looping through temp array to recreate source select element        
		for (var i = 0; i < aryTempSourceOptions.length; i++)
		 {            
			objSourceElement.options[i].text = aryTempSourceOptions[i].text;            
			objSourceElement.options[i].value = aryTempSourceOptions[i].value;            
			objSourceElement.options[i].selected = false;        
		}
	//}
	var listobj;
	if(flag=="D")
	{
		listobj=objSourceElement
	}
	else
		listobj=objTargetElement
		
	var idstring,textstring;
	idstring="";
	textstring="";
	for (var j = 0; j < listobj.length; j++)
	{
		if(listobj.options[j].value != -1)
		{
			if(j!=listobj.length-1)
			{
				idstring=idstring+listobj.options[j].value+",";
				textstring=textstring+listobj.options[j].text+",<br>";
			}
			else
			{
				idstring=idstring+listobj.options[j].value;
				textstring=textstring+listobj.options[j].text;
			}
		}			
	}	
	/*Set_Cookie("IdString", idstring);
	Set_Cookie("TextString", textstring);*/
}

 
function keySort(dropdownlist,caseSensitive) {
  
  // check the keypressBuffer attribute is defined on the dropdownlist 
  
  var undefined; 

  if (dropdownlist.keypressBuffer == undefined) { 
    dropdownlist.keypressBuffer = ''; 
  } 
  
  // get the key that was pressed 
  var key = String.fromCharCode(window.event.keyCode); 
  
  dropdownlist.keypressBuffer += key;
  
  if (!caseSensitive) {
    // convert buffer to lowercase
    dropdownlist.keypressBuffer = dropdownlist.keypressBuffer.toLowerCase();
  }
  
  // find if it is the start of any of the options 
  var optionsLength = dropdownlist.options.length; 
  
  for (var n=0; n < optionsLength; n++) { 
    var optionText = dropdownlist.options[n].text; 
    if (!caseSensitive) {
      optionText = optionText.toLowerCase();
    }
    if (optionText.indexOf(dropdownlist.keypressBuffer,0) == 0) { 
      dropdownlist.selectedIndex = n; 
      return false; // cancel the default behavior since 
                    // we have selected our own value 
    } 
  } 
  
  // reset initial key to be inline with default behavior   
  dropdownlist.keypressBuffer = key; 
  
  return true; // give default behavior 
}

function showcuttext(id)
{
	var objmultiplecombo=document.getElementById(id);				
	var showfulltext;
	showfulltext = '';
	
	for (var j = 0; j < objmultiplecombo.length; j++)
	{
		if(objmultiplecombo.options[j].value != -1 && objmultiplecombo.options[j].selected)
		{
			if(objmultiplecombo.options[j].text.length>42)
			{
				showfulltext += objmultiplecombo.options[j].text + '<br>';
			}	
		}			
	}	
	
	document.getElementById('showfulltext').innerHTML = showfulltext;
}

function checkFileExtension(filename)
{
	var OK = new Array ('.txt'); //, '.odt', '.csv', '.pdf'
	var err_file = "";

	if (filename != "")
	{
		var fileOK = 0;

		for (i = 0; i < OK.length; i++)
		{
			if (filename.indexOf(OK[i]) != -1)
			{
				fileOK = 1; // one of the file extensions found
				break;
			}
		}

		if (fileOK !=1)
		{
			err_file +=  filename + " has an invalid file type. \r\n";
		}

	}

	return err_file;
}

function validateMultipleSearchId(fieldValue)
{
	if (fieldValue.length<1)
	{
		return true;
	}
	chk1="1234567890,";
	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}

function validatePhoneNumber(fieldValue)
{
	/*var pattern = "/[^0-9\-]+/";
	
	if(fieldValue.length > 0 && fieldValue.match(pattern)) return false;
	return true;*/
	
	if (fieldValue.length<1)
	{
		return true;
	}
	chk1=" ()1234567890-";
	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}

function checkFileType(filename)
{
	var OK = new Array ('.doc','.txt','.pdf','.efx','.gif','.jpg','.tif','.rtf','.wpd','.xls','.zip');
	var err_file = "";
	if (filename != "")
	{
		var fileOK = 0;

		for (i = 0; i < OK.length; i++)
		{
			if (filename.indexOf(OK[i]) != -1)
			{
				fileOK = 1; // one of the file extensions found
				break;
			}
		}

		if (fileOK !=1)
		{
			err_file +=  filename + " has an invalid file type.\r\n";
		}
	}
	return err_file;
}