
// JavaScript library for form field validation

var digits = "0123456789";

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"

var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"


var whitespace = " \t\n\r";
var phoneNumberDelimiters = "()- ";
var validUSPhoneChars = digits + phoneNumberDelimiters;

var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";

var digitsInUSPhoneNumber = 10;	
var ZIPCodeDelimiters = "-";
var validZIPCodeChars = digits + ZIPCodeDelimiters
var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9

var iEmail = "This field must be a valid email address (like rs@hotmail.com). Please reenter it now."
var iZIPCode = "This field must be a 5 or 9 digit U.S. ZIP Code (like 94043). Please reenter it now."
var iInteger = "This field must be a whole number value. Please reenter it now."
var iAlphabetic = "This field must contain only letters. Please reenter it now."
var iAlphanumeric = "This field must contain only letters and digits. Please reenter it now."
var iAlphanumeric1 = "This field must contain only letters,digits and (# . - , /) Please reenter it now."
var iNumber = "This field must contain only numeric values. Please reenter it now."
var pPhone = "This field must contain phone number (like 415 212 2421)."

var defaultEmptyOK = false

function makeArray(n) {
   for (var i = 1; i <= n; i++) {
      this[i] = 0
   }
   return this
}

function isWhitespace (s)

{   var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

function trim(strText)
{
  while(strText.substring(0,1) == ' ')
   strText = strText.substring(1,strText.length);

  while(strText.substring(strText.length-1,strText.length) == ' ')
   strText = strText.substring(0,strText.length-1);

  return strText;
}


function isEmpty(s)
{   
//	s = trim(s);
	return ((s == null) || (s.length == 0) || (s.charAt(0) == " "));
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) ) }


function isDigit (c)
{   return ((c >= "0") && (c <= "9")) }


function isAlphabetic (s)

{   var i;

    if (isEmpty(s))
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);


    for (i = 0; i < s.length; i++)
    {
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }

    // All characters are letters.
    return true;
}


function isAlphanumeric (s)

{   var i;

    if (isEmpty(s))
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) || isWhitespace(c) || (c == ",") || (c == ".")) )
        return false;
    }

    return true;
}


function isInteger (s)

{   var i;

    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isFloat (s)
{   var i;
    var seenDecimalPoint = false;

    if (isEmpty(s))
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);

    if (s == ".") return false;

    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);

        if ((c == ".") && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }

    return true;
}

function isZIPCode (s)
{  if (isEmpty(s))
       if (isZIPCode.arguments.length == 1) return defaultEmptyOK;
       else return (isZIPCode.arguments[1] == true);
   return (isInteger(s) &&
            ((s.length == digitsInZIPCode1) ||
             (s.length == digitsInZIPCode2)))
}

function isvalidEmailChar (s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) || (c=='@') || (c=='.') || (c=='_') || (c=='-') || (c=='+')) ) {
       	return false;
		}
    }

    return true;
}


function isEmail (s)
{   if (isEmpty(s))
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);

    if (isWhitespace(s)) return false;
/*    if (!isvalidEmailChar(s)) return false;

    atOffset = s.lastIndexOf('@');

    if ( atOffset < 1 )
        return false;
    else {
 	dotOffset = s.indexOf('.', atOffset);

      if ( dotOffset < atOffset + 2 ||
         dotOffset > s.length - 2 ) {
         return false;
      }
   }
   return true;*/

    if (s.search(/^\w+((-\w+)|(\.\w+)|(\$\w+)|(\~\w+)|(\!\w+)|(\#\w+)|(\%\w+)|(\^\w+)|(\*\w+)|(\(\w+)|(\)\w+)|(\=\w+)|(\|\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
//    if (s.search(/^\w+((-\w+)|(\.\w+)|(\$ | \! | \~ | \` | \# | \% | \^ | \& | \* | \( | \) | \+ | \= | \|)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;

}


function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    return false
}


function CheckEmail (theField, themsg,emptyOK)
{ 
    theFieldvalue = trim(theField.value);

    if (CheckEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (isEmpty(theFieldvalue)) { alert(themsg); theField.focus();return false; }
    else if (!isEmail(theFieldvalue, false))
       return warnInvalid (theField, iEmail);
    else return true;
}


function isIntegerInRange (s, a, b)
{   if (isEmpty(s))
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);

    if (!isInteger(s, false)) return false;

    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}



function CheckPhonenumber(ph,phmsg,emptyOK)
{   

    phno = trim(ph.value);
    if (CheckPhonenumber.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(phno))) return true;
    else if (isEmpty(phno)) { alert(phmsg); ph.focus();return false; }
    else
    {

      var i;

      for (i = 0; i < phno.length; i++)
      {
        var c = phno.charAt(i);
        if (validWorldPhoneChars.indexOf(c) == -1) {alert(pPhone); ph.focus(); return false; }
      }
	return true;
    }
}

function checkZIPCode (theField, emptyOK)
{   if (checkZIPCode.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else
    { var normalizedZIP = stripCharsInBag(theField.value, ZIPCodeDelimiters)
      if (!isZIPCode(normalizedZIP, false))
         return warnInvalid (theField, iZIPCode);
      else
      {
         theField.value = reformatZIPCode(normalizedZIP)
         return true;
      }
    }
}


function Checkstring(StrField,Strmsg,emptyOK)
{
	StrFieldvalue = trim(StrField.value);
	if (Checkstring.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true) && (isEmpty(StrFieldvalue))) return true;
	else
	{
          if (isEmpty(StrFieldvalue)) { alert(Strmsg); StrField.focus();return false; }
	  else if (!isAlphanumeric(StrFieldvalue)) { alert(iAlphanumeric); StrField.focus(); return false; }		
	  return true;
	}
}

function isAlphanumeric1 (s)

{   var i;

    if (isEmpty(s))
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) || isWhitespace(c) || (c == ",") || (c == ".") || (c == "#") || (c == "-") || (c == "/") ) )
        return false;
    }

    return true;
}

function CheckAddress(StrField,Strmsg,emptyOK)
{
	StrFieldvalue = trim(StrField.value);
	if (CheckAddress.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true) && (isEmpty(StrFieldvalue))) return true;
	else
	{
          if (isEmpty(StrFieldvalue)) { alert(Strmsg); StrField.focus();return false; }
	  else if (!isAlphanumeric1(StrFieldvalue)) { alert(iAlphanumeric1); StrField.focus(); return false; }
	  return true;
	}
}

function CheckInteger(IntField,Intmsg,emptyOK)
{
	IntFieldvalue = trim(IntField.value);
	if (CheckInteger.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true) && (isEmpty(IntFieldvalue))) return true;
	else
	{
	   if (isEmpty(IntFieldvalue)) { alert(Intmsg); IntField.focus();return false; }
           else if (!isInteger(IntFieldvalue))  { alert(iInteger);IntField.focus();return false; }
           return true;
	}
}

function CheckList(StrField,Strmsg,emptyOK)
{
	StrFieldvalue = trim(StrField.options[StrField.selectedIndex].value);
	if (CheckList.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true)) return true;
	else
	{
	  if (StrField.selectedIndex == -1 || StrFieldvalue == 0) 
	   { alert(Strmsg); StrField.focus();return false;  }

          return true;	
	}
}


//------------------------------------------------------------------------------------------
//validate time fields
//------------------------------------------------------------------------------------------
function validateTIME(field)
{
fieldVal = field.value;
// Checks if time is in HH:MMAM|am/PM|pm format.
var timePat = /^(\d{1,2}):(\d{2})\s(AM|am|PM|pm|Am|aM|Pm|pM)$/;
var matchArray = fieldVal.match(timePat)

if (matchArray == null)
{
  alert("Time is not in a valid format.\nUse the HH:MM *m format");
  bValidData=false;
  field.focus();   
  return false;
}
hour = matchArray[1];
minute = matchArray[2];
 if (hour <= 0  || hour > 12)
  {
    alert("Hour must be between 1 and 12.");    
    bValidData=false;
    field.focus();   
    return false;    
  }
  

if (minute<0 || minute > 59) 
{
  alert("Minute must be between 0 and 59.");
  bValidData=false;
  field.focus();  
  return false;
  
}
return true;
}




function checksandate1(from,to,msg)
{
 sArray = from.split("/")
  if (sArray.length > 3){ return false;}

  if (sArray[0].charAt(0) == '0')
	frommd1 = parseInt(sArray[0].charAt(1));
  else
	frommd1 = parseInt(sArray[0]);

  if (sArray[1].charAt(0) == '0')
	frommd2 = parseInt(sArray[1].charAt(1));
  else
	frommd2 = parseInt(sArray[1]);
 
  fromy = parseInt(sArray[2]);
 	
	s1Array = to.split("/")
	if (s1Array.length > 3) { return false; }

  if (s1Array[0].charAt(0) == '0')
	tomd1 = parseInt(s1Array[0].charAt(1));
  else
	tomd1 = parseInt(s1Array[0]);

  if (s1Array[1].charAt(0) == '0')
	tomd2 = parseInt(s1Array[1].charAt(1));
  else
	tomd2 = parseInt(s1Array[1]);

	toy = parseInt(s1Array[2]);

       
	if (fromy < toy)
	{ alert(msg); return false; }

	if ( (frommd1 < tomd1) && (fromy == toy) )
	{ alert(msg); return false; }
	
	if (frommd2 < tomd2)
	{
		if (frommd1 == tomd1 && fromy == toy)
		  { alert(msg); return false; }	
	}
		
	return true;
}

function CheckData(StrField,Strmsg,emptyOK)
{
	StrFieldvalue = trim(StrField.value);
	if (CheckData.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true) && (isEmpty(StrFieldvalue))) return true;
	else
	{
          if (isEmpty(StrFieldvalue)) { alert(Strmsg); StrField.focus();return false; }
	  else return true;
	}
}


//****Added by Kaleem on 23 July 2004 - Purpose GMT Time Settings **************//
var calendar_window
function GetDNCalendarOpened(Param1)
{
//The Param1 will be like 'thisform.Meedate'
//The Param2 is the 24Hr Time format '13:24:00' // tHIS pARAMETER iS  rEMOVED 
//alert(Param2)
var  strArray1 = Param1.split(".")
var FormName = strArray1[0]
//alert(FormName)
var FieldName = strArray1[1]
//alert(FieldName)
var HiddenFieldName = FormName + ".hdn_" + FieldName
//alert(HiddenFieldName)

var Hdn_Value = eval(HiddenFieldName).value  //This value will be either the Full GMT DATE Time  #OR#  only the GMT DATE value
//alert("1 Hdn_Value : " + Hdn_Value) 

var CurDate_Value = new Date(); // This value will be the current date time of the Client Machine.
//alert("3 CurDate_Value : " + CurDate_Value) 
		
	var TheHours_CurDate = CurDate_Value.getHours();  //Current Clients Hours of the Time
	var TheMinutes_CurDate = CurDate_Value.getMinutes(); // Current Clients Minutes of the Time
	var TheSeconds_CurDate = CurDate_Value.getSeconds(); // Current Clients Seconds of the Time
	
var TheGMTDate1  = new Date(Hdn_Value);
//alert(TheGMTDate1)
	var TheHours_Date = TheGMTDate1.getHours(); //Check for the Hours of the obtained GMT Time
	var TheMinutes_Date = TheGMTDate1.getMinutes();//Check for the Minutes of the obtained GMT Time
	var TheSeconds_Date = TheGMTDate1.getSeconds(); //Check for the seconds of the obtained GMT Time

//alert(TheHours_Date)
//alert(TheMinutes_Date)
//alert(TheSeconds_Date)

if (TheHours_Date == '0')
	{
		Hdn_Value = parseInt(TheGMTDate1.getMonth()+1) +"/"+ TheGMTDate1.getDate() +"/"+TheGMTDate1.getYear() +" "+ TheHours_CurDate +":"+ TheMinutes_CurDate +":"+ TheSeconds_CurDate 
//		alert("4 Hdn_Value : " + Hdn_Value)
	}

var TheGMTDate1  = new Date(Hdn_Value)

	//Convert the GMT Format to Local Format	
	var Date_In_Local = new Date(Date.UTC(TheGMTDate1.getYear(),TheGMTDate1.getMonth(),TheGMTDate1.getDate(),TheGMTDate1.getHours(),TheGMTDate1.getMinutes()));
	var NormalDate = parseInt(Date_In_Local.getMonth())+1 + "/" + Date_In_Local.getDate() + "/"+ Date_In_Local.getYear()
	if (TheHours_Date == '0') 
		var NormalTime = TheGMTDate1.getHours() + ":" + TheGMTDate1.getMinutes() +":00"	
	else	
		var NormalTime = Date_In_Local.getHours() + ":" + Date_In_Local.getMinutes() +":00"
	

//	alert("5 NormalDate : " + NormalDate)
//	alert("6 NormalTime : " + NormalTime)
	//Use this NormalDate While Opening the Calendar.	
	//**Convert the GMT Format to Local Format	

var Query = "../Common/DNCalendar.aspx?MyFormDate="+NormalDate+"&MyFormHiddenField="+HiddenFieldName+"&MyFormNormalField="+Param1+"&MyFormtime="+NormalTime
//alert(Query)
calendar_window=window.open(Query,'calendar_window','width=234,height=200,top=280,left=450');
calendar_window.focus()
		
}


function GiveMeLocalFormat(MyDateTime)
{
//alert("Obtained MyDateTime : " + MyDateTime)
// The expected format of 'MyDateTime' is MM/DD/YYY HH:MM:SS - 24 HrsTimeFormat
var theDate = new Date(MyDateTime)
theDate = new Date(theDate)
var ToReturn = theDate.toLocaleString();
//alert("Return : "+ToReturn)
return ToReturn
}

function UseFieldsToPopulateDateTime(Parameter1,Parameter2,Parameter3)
{
// Parameter1 - is the Field Name where the Local Format should be displayed.
// Parameter2 - is the Hidden Field Name where the GMT Format should be stored.
// Parameter3 - Holds the Date Selected along with 24hrs time, This should be as used as a base to populate the required fields.

//alert("Parameter1 : " + Parameter1)
//alert("Parameter2 : " + Parameter2)
//alert("Parameter3 : " + Parameter3)

var LFormat = GiveMeLocalFormat(Parameter3)
eval(Parameter1).value = LFormat // display the selected datetime in local format

	var theDate1 = new Date(Parameter3);	
	var intTariq = new Date(theDate1.getUTCFullYear(),theDate1.getUTCMonth(),theDate1.getUTCDate(),theDate1.getUTCHours(),theDate1.getUTCMinutes(),theDate1.getUTCSeconds())
	var intMonth =  intTariq.getMonth() + 1;
	var DatetoStore = intMonth  + "/" + intTariq.getDate() + "/" + intTariq.getYear() + " " + intTariq.getHours() + ":" + intTariq.getMinutes() + ":" + intTariq.getSeconds() + "0"
	//alert("This Date will be stored in DB : " + DatetoStore)
eval(Parameter2).value = DatetoStore
//alert("Value Stored : " + eval(Parameter2).value)
}


function ConvertGMT_ToLocal(DBDATE)
{
//DBDATE is expected to be the DATEandTime, where in the time is in 24Hr format.	
	var theDate = new Date(DBDATE);
	//Convert to Local Format	
	var theDate1 = new Date(Date.UTC(theDate.getYear(),theDate.getMonth(),theDate.getDate(),theDate.getHours(),theDate.getMinutes()));
	var NormalDate = parseInt(theDate1.getMonth())+1 + "/" + theDate1.getDate() + "/"+ theDate1.getYear()
	var NormalTime = theDate1.getHours() +":"+theDate1.getMinutes() +":"+theDate1.getSeconds()
	var Normal_Date_Time = NormalDate + " " + NormalTime
	return Normal_Date_Time
// This returns the date time as per the local regional settings, 

}

var MyTimeArray = new Array();
MyTimeArray.push("720","(GMT-12:00) Eniwetok, Kwajalein");
MyTimeArray.push("660","(GMT-11:00) Midway Island, Samoa");
MyTimeArray.push("600","(GMT-10:00) Hawaii");
MyTimeArray.push("540","(GMT-09:00) Alaska");
MyTimeArray.push("480","(GMT-08:00) Pacific Time (US & Canada); Tijuana");
MyTimeArray.push("420","(GMT-07:00) Mountain Time (US & Canada) ## (GMT-07:00) Arizona");
MyTimeArray.push("360","(GMT-06:00) Saskatchewan ## (GMT-06:00) Mexico City ## (GMT-06:00) Central Time (US & Canada) ## (GMT-06:00) Central America");
MyTimeArray.push("300","(GMT-05:00) Indiana (East) ## (GMT-05:00) Eastern Time (US & Canada) ## (GMT-05:00) Bogota, Lima, Quito");
MyTimeArray.push("240","(GMT-04:00) Santiago ## (GMT-04:00) Caracas, La Paz ## (GMT-04:00) Atlantic Time (Canada)");
MyTimeArray.push("210","(GMT-03:30) Newfoundland");
MyTimeArray.push("180","(GMT-03:00) Greenland ## (GMT-03:00) Buenos Aires, Georgetown ## (GMT-03:00) Brasilia");
MyTimeArray.push("120","(GMT-02:00) Mid-Atlantic");
MyTimeArray.push("60","(GMT-01:00) Cape Verde Is. ## (GMT-01:00) Azores");
MyTimeArray.push("0","(GMT) Casablanca, Monrovia ## (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London");
MyTimeArray.push("-60","(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna ## (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague ## (GMT+01:00) Brussels, Copenhagen, Madrid, Paris ## (GMT+01:00) Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb ## (GMT+01:00) West Central Africa");
MyTimeArray.push("-120","(GMT+02:00) Athens, Istanbul, Minsk ## (GMT+02:00) Bucharest ## (GMT+02:00) Cairo ## (GMT+02:00) Harare, Pretoria ## (GMT+02:00) Helsinki, Riga, Tallinn ## (GMT+02:00) Jerusalem");
MyTimeArray.push("-180","(GMT+03:00) Baghdad ## (GMT+03:00) Kuwait, Riyadh ## (GMT+03:00) Moscow, St. Petersburg, Volgograd ## (GMT+03:00) Nairobi");
MyTimeArray.push("-210","(GMT+03:30) Tehran")
MyTimeArray.push("-240","(GMT+04:00) Abu Dhabi, Muscat ## (GMT+04:00) Baku, Tbilisi, Yerevan")
MyTimeArray.push("-270","(GMT+04:30) Kabul")
MyTimeArray.push("-300","(GMT+05:00) Ekaterinburg ## (GMT+05:00) Islamabad, Karachi, Tashkent")
MyTimeArray.push("-330","(GMT+05:30) Calcutta, Chennai, Mumbai, New Delhi")
MyTimeArray.push("-345","(GMT+05:45) Kathmandu")
MyTimeArray.push("-360","(GMT+06:00) Almaty, Novosibirsk ## (GMT+06:00) Astana, Dhaka ## (GMT+06:00) Sri Jayawardenepura")
MyTimeArray.push("-390","(GMT+06:30) Rangoon")
MyTimeArray.push("-420","(GMT+07:00) Bangkok, Hanoi, Jakarta ## (GMT+07:00) Krasnoyarsk")
MyTimeArray.push("-480","(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi ## (GMT+08:00) Irkutsk, Ulaan Bataar ## (GMT+08:00) Kuala Lumpur, Singapore ## (GMT+08:00) Perth ## (GMT+08:00) Taipei")
MyTimeArray.push("-540","(GMT+09:00) Osaka, Sapporo, Tokyo ## (GMT+09:00) Seoul ## (GMT+09:00) Yakutsk")
MyTimeArray.push("-570","(GMT+09:30) Adelaide ## (GMT+09:30) Darwin")
MyTimeArray.push("-600","(GMT+10:00) Brisbane ## (GMT+10:00) Canberra, Melbourne, Sydney ## (GMT+10:00) Guam, Port Moresby ## (GMT+10:00) Hobart ## (GMT+10:00) Vladivostok")
MyTimeArray.push("-660","(GMT+11:00) Magadan, Solomon Is., New Caledonia")
MyTimeArray.push("-720","(GMT+12:00) Auckland, Wellington ## (GMT+12:00) Fiji, Kamchatka, Marshall Is.")
MyTimeArray.push("-780","(GMT+13:00) Nuku'alofa")

function GetMyTimeZone()
{
	theDate = new Date();
	//alert("Current System Date : " + theDate)
	var offsetinMin =theDate.getTimezoneOffset();
//alert(offsetinMin);
	if(checkTimeZone())
	 {
		if (parseInt(theDate.getMonth())+1 > 3 &&  parseInt(theDate.getMonth())+1 < 11)
			{
				if (parseInt(offsetinMin) > 0)			
					offsetinMin = parseInt(offsetinMin) + 60;			
			}
	 }
	
//alert(offsetinMin)
	var i
	var retTZ
	for (i=0;i<MyTimeArray.length;i=i+2)
	{
		if (MyTimeArray[i] == offsetinMin)
			retTZ=MyTimeArray[i+1];
	}
	//alert(retTZ)
	return retTZ
}	

function  checkTimeZone() {
   var rightNow = new Date();
   var date1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
   var date2 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
   var temp = date1.toGMTString();
   var date3 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
   var temp = date2.toGMTString();
   var date4 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
   var hoursDiffStdTime = (date1 - date3) / (1000 * 60 * 60);
   var hoursDiffDaylightTime = (date2 - date4) / (1000 * 60 * 60);

   if (hoursDiffDaylightTime == hoursDiffStdTime) { 
     // alert("Time zone is GMT " + hoursDiffStdTime + ".\nDaylight Saving Time is NOT observed here.");
       return false;
   } else {
     // alert("Time zone is GMT " + hoursDiffStdTime + ".\nDaylight Saving Time is observed here.");
	return true;
   }
}

function CheckRestrictedCharacters(thisvalue)
{
	var len = thisvalue.length;
	var i
			for(i=0;i<=len-1;i++)
			{
				var sub1=thisvalue.substr(i,1);
				if ((sub1 =='&') || (sub1 ==':') || (sub1 =='*') || (sub1 =='?') || (sub1 =='"') || (sub1 =="'") || (sub1 =='<') || (sub1 =='>') || (sub1 =='|') || (sub1 =='/') || (sub1 == '\\' ))
				{	
					return "false"; 
				}
			}
			return "true"; 
}

//  Added By Anil on 04 Sep,2004
// This function replaces the characters with the given characters in the input string 

	function ReplaceCharacters(str,strReplace,strReplaceBy)
	{
		var pos = 1
		var i = 0
		while (pos>=0)
		{
			i = i + 1
			pos = str.indexOf(strReplace);
			if (pos != -1)
				str = str.replace(strReplace,strReplaceBy);
		}
		return str;
	}

//  Added By Anil on 04 Sep,2004

//  Added By Anil on 15th Dec, 2005  - to add escape sequence characters

	function ReplaceJSCharacters(strInput)
	{
		var strOutput = ""
		strInput = ReplaceSlashCharacters(strInput)
		var intPos1 = 0
		var intPos2, intNoOfChars
		intPos2 = strInput.indexOf("'",intPos1)
		while (intPos2 != -1)
		{
			intNoOfChars = intPos2 - intPos1
			strOutput = strOutput + strInput.substr(intPos1,intNoOfChars) + "\\'"
			intPos1 = intPos2 + 1
			intPos2 = strInput.indexOf("'",intPos1)
		}
		strOutput = strOutput + strInput.substring(intPos1)
		return strOutput
	}

	function ReplaceSlashCharacters(strInput)
	{
		var strOutput = ""
		var intPos1 = 0
		var intPos2, intNoOfChars
		intPos2 = strInput.indexOf("\\",intPos1)
		while (intPos2 != -1)
		{
			intNoOfChars = intPos2 - intPos1
			strOutput = strOutput + strInput.substr(intPos1,intNoOfChars) + "\\\\"
			intPos1 = intPos2 + 1
			intPos2 = strInput.indexOf("\\",intPos1)
		}
		strOutput = strOutput + strInput.substring(intPos1)
		return strOutput	
	}

//  Added By Anil on 15th Dec, 2005  - to add escape sequence characters

