﻿    
    //// JScript File    
    
    //''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    // Purpose  : METHOD WHICH OPENS THE LOOKUP
    //''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    var lookupwin;
     var PrimarySk=""; //added by rathika
    var PrimaryText=""; //added by rathika
   var loopupName="";
    function showLookup(QueryId,FilterValue,OrderBy,SelectedRows,Width,Height,LookupConfigSection,LookupXml,Others,hdnSk,hdnText)
     {	    
       
            lookupName=QueryId;
            
            PrimarySk=document.getElementById(hdnSk.valueOf()).value
            PrimaryText=document.getElementById(hdnText.valueOf()).value
          
      
	        var Features = "menubar=no,";			
	        Features += "resizable=no,";
	        Features += "scrollbars=no,";
	        Features += "status=no,";			
	        Features += "toolbar=no,";
	        Features += "top=" + (screen.height-400)/2 + ",";
	        Features += "left=" + (screen.width-400)/2 + ",";
	        Features += "width=" + Width + "px,";			
	        Features += "modal,";
	        Features += "height=360px";
	        var URL = "../aspx/Lookup.aspx?";
	        URL += "queryName="+ QueryId;
	        URL += "&filter="+ FilterValue;
	        URL += "&orderby="+ OrderBy;
            URL += "&ConfigSection=" + LookupConfigSection;
	        URL += "&LookupXml=" + LookupXml;
	        
	        if (SelectedRows!="") URL += "&PrimaryValues=" + SelectedRows;		
	        if (Others!="") URL += Others;
	        lookupwin= window.open(URL,"Lookup",Features); //window.showModalDialog
	        return false;
     }
     function showProfileLookup(QueryId,FilterValue,OrderBy,ClientSk,WebSiteSk,SelectedRows,Width,Height,LookupConfigSection,LookupXml,Others,hdnSk,hdnText)
     {	    
       
            lookupName=QueryId;
            
            PrimarySk=document.getElementById(hdnSk.valueOf()).value
            PrimaryText=document.getElementById(hdnText.valueOf()).value
          
      
	        var Features = "menubar=no,";			
	        Features += "resizable=no,";
	        Features += "scrollbars=no,";
	        Features += "status=no,";			
	        Features += "toolbar=no,";
	        Features += "top=" + (screen.height-400)/2 + ",";
	        Features += "left=" + (screen.width-400)/2 + ",";
	        Features += "width=" + Width + "px,";			
	        Features += "modal,";
	        Features += "height=360px";
	        var URL = "../aspx/Lookup.aspx?";
	        URL += "queryName="+ QueryId;
	        URL += "&filter="+ FilterValue;
	        URL += "&orderby="+ OrderBy;
	        URL += "&ClientSk="+ ClientSk;
	        URL += "&WebSiteSk="+ WebSiteSk;
            URL += "&ConfigSection=" + LookupConfigSection;
	        URL += "&LookupXml=" + LookupXml;
	        
	        if (SelectedRows!="") URL += "&PrimaryValues=" + SelectedRows;		
	        if (Others!="") URL += Others;
	        lookupwin= window.open(URL,"Lookup",Features); //window.showModalDialog
	        return false;
     }
     
     function Confirm()
     {
        var Msg;       
        Msg = window.confirm("Do you want to save the changes?");
        if(Msg)
        {
            return true;
        }
        else
        {
            return false;
        }
     }
     function deleteConfirm(pName)
     {
        var Msg;       
        Msg = window.confirm("Do you want to delete "+pName + "?");
        if(Msg)
        {
            return true;
        }
        else
        {
            return false;
        }
     }
     
     function deleteBothConfirm(pName)
     {
        var Msg;       
        Msg = window.confirm("Do you want to delete "+pName+ "?");
        if(Msg)
        {
            return true;
        }
        else
        {
            return false;
        }
     }
     
     
     
/*
	Purpose		: Used for validating the decimal
	Parameters  : 1) the object which contains the value
				  2) Total length of the number
				  3) number of digts it can have after decimal 
				  4) Label name to display the error message
				  5) Format of the number
	Return 		: true if number is enterted correctly else false
	
	Ex : if DataBase field is Number(5,2)
		 fnValidate(form1.txt,5,2,"Number","999.99") 
	 
*/
function fnValidateDecimal(obj,totallength,decimallength,controlLabel,format)
 {
	var value = obj.value;
	var strSplit = value.split('.')
	var len = strSplit.length
	if (len > 2) 
	{
		//error(1,controlLabel,"");
		error(522,controlLabel,format);
		obj.focus()
		return false
	}
	else if (len == 1)
	{
		if ((value.length) > (totallength - decimallength))
		{
			//error(2,controlLabel,totallength - decimallength);
			error(522,controlLabel,format);
			obj.focus()
			return false
		}
	}
	else if (len == 2)
	{
		var lftLen = strSplit[0].length
		var rgttLen = strSplit[1].length		
		
		if ((lftLen > (totallength - decimallength)) || (rgttLen > decimallength) || (value == "."))
		{
			//error(3,controlLabel,format);
			error(522,controlLabel,format);
			obj.focus()
			return false
		}
	}
	return true
}

/*
	Purpose		: Used to convert the date in one format to another format
	Parameters  : 1) Date which is to be convert
				  2) the format of the date which is sent
				  3) the format to which date is to be converted
	Return 		: supplied date to required format 	    	
	 
*/
function ConvertDate(date,DateFormat,RequiredFormat)
{	
	var MonthName = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
	var mm, mon, dd, yyyy, yy
	var b,ReturnDate
	var dt = new Date()
	ReturnDate = RequiredFormat.toUpperCase()
	DateFormat = new String(DateFormat).toUpperCase()
	date = new String(date)
		
	pos = DateFormat.indexOf("DD",0)
		
	if (pos != -1)  dd = date.substr(pos, 2)
		
	pos = DateFormat.indexOf("MM",0)

	if (pos != -1)
	{
	    mm = date.substr(pos,2)
	    mon = MonthName[mm-1]
	}    
	else
	{		
		pos = DateFormat.indexOf("MON",0)		
		mon = date.substr(pos,3)				
		for (i = 0 ;i < MonthName.length;i++)
		{
			if (mon.toLowerCase() == MonthName[i].toLowerCase())
			{
				mm = String(i + 1);
				if (mm.length == 1) mm = "0" + mm 
				break; 
			}
				
		}
	}
	pos = DateFormat.indexOf("YYYY",0)
	if (pos != -1) 
	{
		yyyy = date.substr(pos,4)
		yy = date.substr(pos+2, 2)			
	}
	else
	{
		pos = DateFormat.indexOf("YY",0)
		yy = date.substr(pos,2)
		yyyy = String(dt.getFullYear()).substr(0,2) + yy			
	}	
					
	ReturnDate = ReturnDate.replace("MM", mm)
	ReturnDate = ReturnDate.replace("MON", mon)
	ReturnDate = ReturnDate.replace("DD", dd)
	ReturnDate = ReturnDate.replace("YYYY", yyyy)
	ReturnDate = ReturnDate.replace("YY", yy)		
	
	return ReturnDate
}
/*
	Purpose	: For restricting the characters on keypress event depending on the type
*/
function fnOnKeyPress(type,evt)
{

//	var exp = String.fromCharCode(window.event.keyCode)
var exp;
var charcode;
    exp = (evt.which) ? evt.which : event.keyCode
  charcode=exp;
   exp = String.fromCharCode(exp);
	
	switch(type.toUpperCase())
	{
		case "CODE":
		{
			var r = new RegExp("[A-Za-z0-9-_]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "SORTORDER" :
		{
			var r = new RegExp("[0-9.-]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "DECIMAL" :
		{
		 if(navigator.appName == 'Microsoft Internet Explorer')
            {
			var r = new RegExp("[0-9.]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
			  }
			else
			{
			    if((charcode>47 && charcode<58)||(charcode==8) || (charcode==46))
                    break;
                else                 
                {                                           
                    evt.preventDefault();
                    break;
                }
			}
		}
		case "NUMBER" :
		{
//			var r = new RegExp("[0-9]", "g");
//			if (exp.match(r) == null)
//				window.event.keyCode = 0
//			break;
               if(navigator.appName == 'Microsoft Internet Explorer')
            {
			    var r = new RegExp("[0-9]", "g");
			    if (exp.match(r) == null)
				    window.event.keyCode = 0
    				break;
		    }
		
		    else
		    {
                if((charcode>47 && charcode<58)||(charcode==8))
                    break;
                else                 
                {                                           
                    evt.preventDefault();
                    break;
                }

		    }
		}
		case "CHAR" :
		{
			var r = new RegExp("[a-zA-Z]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "ALPHANUMERIC" :
		{
			var r = new RegExp("[a-zA-Z0-9]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "EXECUTABLE" :
		{
			var r = new RegExp("[a-zA-Z0-9_./]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "FILEPATH" :
		{
			var r = new RegExp("[a-zA-Z0-9.:/\ ]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
		case "SQLQUERY" :
		{
			var r = new RegExp("[^?]", "g");
			if (exp.match(r) == null)
				window.event.keyCode = 0
			break;
		}
	}
}  

/*	Purpose : Left trimming the  space */
function lTrim(LtrimValue)
{	
	var length = LtrimValue.length;
	var counter = 0;
	for (counter=0;counter < length ;counter++)
	{
		if(LtrimValue.charCodeAt(counter) !=32) break;
	}
	return LtrimValue.substring(counter,LtrimValue.length);
}

/*	Purpose : Right trimming the  space */
function rTrim(RtrimValue)
{
	var count = 0;
	for(counter=RtrimValue.length-1 ; counter>=0; counter--)				
	{						
		if(RtrimValue.charCodeAt(counter) == 32)	
			count++;
		else	
			break;
	}
	return RtrimValue.substring(0,RtrimValue.length - count)
}

/*	Purpose : Left and Right trimming the  space */
function trim(val)
{     
	return lTrim(rTrim(val));
}

/*
	Purpose		: To compare two dates
	Arguments	: Two dates to compare and the format of the supplied dates
	Return		: 1) Date1 less than date2   => -1
				  2) Date1 greater than date2   => 1
				  3) Date1 Equal to date2   => 0
*/

function CompareDates(Date1,Date1Format,Date2,Date2Format)
{
	var dt1 = new Date(ConvertDate(Date1,Date1Format,"MM/DD/YYYY"))
	var dt2 = new Date(ConvertDate(Date2,Date2Format,"MM/DD/YYYY"))
	dt1.setHours(00,00,00,00)
	dt2.setHours(00,00,00,00)
	
	if (dt1 < dt2)
		return -1;
	else if (dt1 > dt2)
		return 1;
	else
		return 0;
}
/*
	Purpose		: to return the difference between two days
	Parameters  : interval ==> Values will be "D" or "M" or "Y"
	Return 		: number of days or months or years between two supplied days 
*/
function DateDiff(interval,Date1,Date1Format,Date2,Date2Format)
{
	var dt1 = new Date(ConvertDate(Date1,Date1Format,"MM/DD/YYYY"))
	var dt2 = new Date(ConvertDate(Date2,Date2Format,"MM/DD/YYYY"))
	var tempDate = "",sign = ""
	if (dt1 > dt2)
	{
		tempDate = dt2
		dt2 = dt1
		dt1 = tempDate
		sign = "-"
	}
	diffDays = (dt2.getFullYear() - dt1.getFullYear())* 365.25 + (fnTotalDays(dt2.getMonth()-1, dt2.getFullYear()) - fnTotalDays(dt1.getMonth()-1, dt1.getFullYear())) + (dt2.getDate() - dt1.getDate());
	switch (interval.toUpperCase())
	{
		case "D" :
				return parseInt((sign) + Math.floor(diffDays))
		case "M" :
			return parseInt((sign) + Math.floor((diffDays * 12 )/365.25))
		case "Y" :
			return parseInt((sign) + Math.floor(diffDays/365.25))
	}
}
		
function fnTotalDays(month,year)
{
	var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if (year % 4 == 0) days[1] = 29; 
	var TotalDays = 0;
	for(i=0;i<=month;i++)
			TotalDays += days[i];
			
	return TotalDays;
}

/*
	Purpose		: To validate Email for the given Email id
	Arguments	: EmailId for validating
	Returns		: true if the given email is true else false
*/

function ValidateEmail(EmailId)
{
	try
	{	
		reg1=/\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
		matches="";
		matches=reg1.exec(EmailId);
		return (matches != null && EmailId == matches[0]);		
	}
	catch(error)
	{
		alert(error)
	}
}
/*
Purpose : To check the mandatory fields depending on the attributes
mandatory in type screens
and errmsgno which contains the array index in the messages
*/
function fnCheckMandatory()
{
    var obj = ""
    var errno = ""


    for(i=0;i< eval(document.forms[0].elements.length);i++)
    {
		obj = eval(document.forms[0].elements[i]);
        if (obj.mandatory != undefined && obj.mandatory == 'Y')
		{
			if (trim(obj.value) == "")
			{
				error(15,obj.msgname,'');
				eval("document.forms[0]."+ obj.id + ".focus()");
				return false;
			}
		}
	}

	return true;
}

/*
	 
function error(errno,s1,s2)
{
	if ((s1 == "") && (s2 == ""))
	{
		alert(Msg[parseInt(errno)])
	}
	else if ((s1 != "") || (s2 != ""))
	{
		var str = new String(Msg[parseInt(errno)])
		str = str.replace('%S1',s1)
		str = str.replace('%S2',s2)
		alert(str)
	}
}*/
/*
Author: Judson Bhaskar
Date: 7.feb.2005
Purpose: Validates Mandatory fields.
*/
function validateText(strFormName) 
{
            if ( strFormName == 'NUMERIC')
            {	
				fnOnKeyPress('NUMBER');
			}  
            else if  ( strFormName == 'VARCHAR')
            {
				OnKeypress(this,1)
		    }	            	
 }  
//-------------------------------------------------------------------
// Trim functions
//   Returns string with whitespace trimmed
//-------------------------------------------------------------------
function LTrim(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}
function RTrim(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function TrimAll(str) {
	return LTrimAll(RTrimAll(str));
	}
	
	
	
//-------------------------------------------------------------------
// isNull(value)
//   Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}

//-------------------------------------------------------------------
// isInteger(value)
//   Returns true if value contains all digits
//-------------------------------------------------------------------
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
	}

//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){return(parseFloat(val,10)==(val*1));}

//-------------------------------------------------------------------
// isArray(obj)
// Returns true if the object is an array, else false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

//-------------------------------------------------------------------
// setNullIfBlank(input_object)
//   Sets a form field to "" if it isBlank()
//-------------------------------------------------------------------
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}

//-------------------------------------------------------------------
// setFieldsToUpperCase(input_object)
//   Sets value of form field toUpperCase() for all fields passed
//-------------------------------------------------------------------
function setFieldsToUpperCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toUpperCase();
		}
	}

//-------------------------------------------------------------------
// disallowBlank(input_object[,message[,true]])
//   Checks a form field for a blank value. Optionally alerts if 
//   blank and focuses
//-------------------------------------------------------------------
function disallowBlank(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (isBlank(getInputValue(obj))){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// disallowModify(input_object[,message[,true]])
//   Checks a form field for a value different than defaultValue. 
//   Optionally alerts and focuses
//-------------------------------------------------------------------
function disallowModify(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (getInputValue(obj)!=getInputDefaultValue(obj)){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		setInputValue(obj,getInputDefaultValue(obj));
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// commifyArray(array[,delimiter])
//   Take an array of values and turn it into a comma-separated string
//   Pass an optional second argument to specify a delimiter other than
//   comma.
//-------------------------------------------------------------------
function commifyArray(obj,delimiter){
	if (typeof(delimiter)=="undefined" || delimiter==null) {
		delimiter = ",";
		}
	var s="";
	if(obj==null||obj.length<=0){return s;}
	for(var i=0;i<obj.length;i++){
		s=s+((s=="")?"":delimiter)+obj[i].toString();
		}
	return s;
	}

//-------------------------------------------------------------------
// getSingleInputValue(input_object,use_default,delimiter)
//   Utility function used by others
//-------------------------------------------------------------------
function getSingleInputValue(obj,use_default,delimiter) {
	switch(obj.type){
		case 'radio': case 'checkbox': return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].value;}}
				return o[0].value;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].value;
					}
				}
			return (values.length==0)?null:commifyArray(values,delimiter);
		}
	error(23,obj.type,'')
	//alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// getSingleInputText(input_object,use_default,delimiter)
//   Utility function used by others
//-------------------------------------------------------------------
function getSingleInputText(obj,use_default,delimiter) {
	switch(obj.type){
		case 'radio': case 'checkbox': 	return "";
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].text;}}
				return o[0].text;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].text:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].text;
					}
				}
			return (values.length==0)?null:commifyArray(values,delimiter);
		}
	error(23,obj.type,'')
	//alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// setSingleInputValue(input_object,value)
//   Utility function used by others
//-------------------------------------------------------------------
function setSingleInputValue(obj,value) {
	switch(obj.type){
		case 'radio': case 'checkbox': if(obj.value==value){obj.checked=true;return true;}else{obj.checked=false;return false;}
		case 'text': case 'hidden': case 'textarea': case 'password': obj.value=value;return true;
		case 'select-one': case 'select-multiple': 
			var o=obj.options;
			for(var i=0;i<o.length;i++){
				if(o[i].value==value){o[i].selected=true;}
				else{o[i].selected=false;}
				}
			return true;
		}
	error(23,obj.type,'')
	//alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return false;
	}

//-------------------------------------------------------------------
// getInputValue(input_object[,delimiter])
//   Get the value of any form input field
//   Multiple-select fields are returned as comma-separated values, or
//   delmited by the optional second argument
//   (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputValue(obj,delimiter) {
	var use_default=(arguments.length>2)?arguments[2]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputValue(obj[i],use_default,delimiter);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values,delimiter);
		}
	return getSingleInputValue(obj,use_default,delimiter);
	}

//-------------------------------------------------------------------
// getInputText(input_object[,delimiter])
//   Get the displayed text of any form input field
//   Multiple-select fields are returned as comma-separated values, or
//   delmited by the optional second argument
//   (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputText(obj,delimiter) {
	var use_default=(arguments.length>2)?arguments[2]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputText(obj[i],use_default,delimiter);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values,delimiter);
		}
	return getSingleInputText(obj,use_default,delimiter);
	}

//-------------------------------------------------------------------
// getInputDefaultValue(input_object[,delimiter])
//   Get the default value of any form input field when it was created
//   Multiple-select fields are returned as comma-separated values, or
//   delmited by the optional second argument
//   (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function getInputDefaultValue(obj,delimiter){return getInputValue(obj,delimiter,true);}

//-------------------------------------------------------------------
// isChanged(input_object)
//   Returns true if input object's value has changed since it was
//   created.
//-------------------------------------------------------------------
function isChanged(obj){return(getInputValue(obj)!=getInputDefaultValue(obj));}

//-------------------------------------------------------------------
// setInputValue(obj,value)
//   Set the value of any form field. In cases where no matching value
//   is available (select, radio, etc) then no option will be selected
//   (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function setInputValue(obj,value) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if(isArray(obj)&&(typeof(obj.type)=="undefined")){
		for(var i=0;i<obj.length;i++){setSingleInputValue(obj[i],value);}
		}
	else{setSingleInputValue(obj,value);}
	}
	
//-------------------------------------------------------------------
// isFormModified(form_object,hidden_fields,ignore_fields)
//   Check to see if anything in a form has been changed. By default
//   it will check all visible form elements and ignore all hidden 
//   fields. 
//   You can pass a comma-separated list of field names to check in
//   addition to visible fields (for hiddens, etc).
//   You can also pass a comma-separated list of field names to be
//   ignored in the check.
//-------------------------------------------------------------------
function isFormModified(theform,hidden_fields,ignore_fields){
	if(hidden_fields==null){hidden_fields="";}
	if(ignore_fields==null){ignore_fields="";}
	var hiddenFields=new Object();
	var ignoreFields=new Object();
	var i,field;
	var hidden_fields_array=hidden_fields.split(',');
	for (i=0;i<hidden_fields_array.length;i++) {
		hiddenFields[Trim(hidden_fields_array[i])]=true;
		}
	var ignore_fields_array=ignore_fields.split(',');
	for (i=0;i<ignore_fields_array.length;i++) {
		ignoreFields[Trim(ignore_fields_array[i])]=true;
		}
	for (i=0;i<theform.elements.length;i++) {
		var changed=false;
		var name=theform.elements[i].name;
		if(!isBlank(name)){
			var type=theform.elements[i].type;
			if(!ignoreFields[name]){
				if(type=="hidden"&&hiddenFields[name]){changed=isChanged(theform[name]);}
				else if(type=="hidden"){changed=false;}
				else {changed=isChanged(theform[name]);}
				}
			}
		if(changed){return true;}
		}
		return false;
	}
	
	/**
 	* DHTML email validation script. 
	 */

function echeck(str)
{

        var at="@"
        var dot="."
        var lat=str.indexOf(at)
        var lstr=str.length
        var ldot=str.indexOf(dot)
        if (str.indexOf(at)==-1){
        return false
        }

        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        return false
        }

        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false
        }

        if (str.indexOf(at,(lat+1))!=-1){
        return false
        }

        if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        return false
        }

        if (str.indexOf(dot,(lat+2))==-1){
        return false
        }

        if (str.indexOf(" ")!=-1){
        return false
        }

        return true					
}

