var appTop=top, pathX=appTop;
while (typeof(appTop.applicationTop)=='undefined' && pathX!=null)
{
	if (appTop.opener)
		appTop= appTop.opener.top
	else if (appTop.dialogArguments) {
			pathX = appTop.dialogArguments.top
			if (typeof(pathX)=='undefined')
				for (var i=0; i<appTop.dialogArguments.length && typeof(pathX)=='undefined' ; i++)
					pathX= appTop.dialogArguments[i].top;
			if (typeof(pathX)=='undefined') { pathX=null; alert('Cannot find appTop path! '); break; };
			else appTop=pathX
	}
	else { pathX=null; alert('Cannot find appTop path! '); break; };
}

var oneDay = 86400000;
var objTodayGMT, todayGMT, endDayHourGMT = appTop.GLEndOfDayGMT, shiftTimeGMT=0*60*60*1000;


function presetGMT()
{
	var d = new Date();
	if (shiftTimeGMT!=0) d.setTime(d.getTime() + shiftTimeGMT);
	objTodayGMT = new Date(Date.parse( (d.getUTCMonth()+1)+'/'+d.getUTCDate()+'/'+d.getUTCFullYear() ));
	if (d.getUTCHours()>=endDayHourGMT) objTodayGMT.setTime(objTodayGMT.getTime() + oneDay);
	todayGMT = GetDateToString(objTodayGMT)
}
presetGMT()

function getTodayGMT() { presetGMT(); return todayGMT;}

//execScript('function FormatFloatvb(myvalue,a)\n if a="" then a=2 \n b=IsNumeric(a) \n if not b then a=0 \n if IsNumeric(myvalue) then \n myvalue=CDbl(myvalue)\n formatFloatvb=FormatNumber(myvalue,a,-1,,false)\n else \n formatFloatvb=myvalue \n end if \n end function',"vbscript")
//execScript('function formatvb(myvalue,a)\n if a="" then a=2 \n b=IsNumeric(a) \n if not b then a=0 \n if IsNumeric(myvalue) then \n myvalue=CDbl(myvalue)\n formatvb=FormatNumber(myvalue,a,-1,,false)\n else \n formatvb=myvalue \n end if \n end function',"vbscript")

/* not in use if Oz don't need it - can be erased
function PreventForbiddenChars(Obj,e,ForbiddenCharsString,apostrophe,invertedCommas)
{
	var charCode =  e.keyCode
	if(apostrophe)ForbiddenCharsString+="'"
	if(invertedCommas)ForbiddenCharsString+='"'
	for(var i=0;i<ForbiddenCharsString.length;i++)
	{
		if (charCode==ForbiddenCharsString.charCodeAt(i))
			return false;
	}
	return true
}*/


function format(positiveExp,digitsAfterPoint)
{
	//Change by Shai on 07/07/2004 due to compatability issues with JS and 1.23775
	var str = "" + Math.round (eval(positiveExp) * Math.pow(10,digitsAfterPoint));
	while (str.length <=digitsAfterPoint)
		str = "0" + str;

	var decpoint = str.length - digitsAfterPoint
	var res= str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
	if (digitsAfterPoint==0) return res.substr(0,res.length-1)
	else
	return res
}

function Expo(flnum)
{
	var snumber = flnum.toString();
	var ExpoLocation = snumber.indexOf('e');
	var flnumber = snumber.substring(0,ExpoLocation)
	var flpow = snumber.substring(ExpoLocation+1,snumber.length)
	return parseFloat(flnumber) * Math.pow(10,flpow);
}

function FormatFloat(expr,num,notaddcom)
{
	if (expr=='') return '';
	var res, NumWithoutCommas, minus=false

	if (num==null) num=2
	expr = RemoveComma(expr)
	//Support For Exponential numbers
	var sExpr = expr.toString();
	if (sExpr.indexOf("e-")!=-1) expr=Expo(expr);
	//************************************
	expr=''+parseFloat(expr)

	if (expr.charAt(0)=='-')
	{
		expr=expr.substr(1, expr.length);
		minus=true;
	}

	NumWithoutCommas = format(expr,num)
	if ((NumWithoutCommas=='Na.N')||(NumWithoutCommas=='NaN.')||(NumWithoutCommas=='N.aN'))
		return expr

	try {if (parseFloat(NumWithoutCommas)==0) minus=false;} catch(e){}

	if (notaddcom==true)
		if (minus)	return '-'+NumWithoutCommas
		else return NumWithoutCommas
	else
		if (minus)	return '-'+AddCommaToNum(NumWithoutCommas)
		else return AddCommaToNum(NumWithoutCommas)
}


function FormatFloatZ(expr,num)
{
	if (toFloat(expr)==0) return '0';
	else return FormatFloat(expr,num)
}


function toFloat(x)
{
    var isNumRet
	try{	x = RemoveComma(x); isNumRet=isNum(x)}
	catch(e){	x = top.RemoveComma(x); isNumRet=top.isNum(x) }
	if (x=='' || x=='.' || x=='-' || x=='-.' || !isNumRet) return 0;
	return parseFloat(x)
}


function formatMyString(myTextBox,digitsAfterPoint)
{
	if (myTextBox.value.length==0) return false;
	if (myTextBox.value=="." || myTextBox.value=="-")
	{
		alert("Please insert a valid number");
		myTextBox.focus();myTextBox.select();return false;
	}
	var x=FormatFloat(myTextBox.value,digitsAfterPoint)
	if (x.indexOf('.')>-1 && x.split('.')[1].length>1 && digitsAfterPoint>2)
		while (x.charAt(x.length-1)=='0' && x.split('.')[1].length>1)
			x = x.substr(0, x.length-1)
	myTextBox.value=x;
}


function ReFormatMyString(myTextBox,digitsAfterPoint)
{
	if (myTextBox.value!='')
		myTextBox.value = FormatFloat(myTextBox.value, digitsAfterPoint, true)
}


function StringDate2Object(DateToChange)
{
	var datevalue = DateToChange;
	if(top.GLDateType!='us')
	{
		var day = datevalue.substring(0,2);
		var month = datevalue.substring(3,5);
		var year = datevalue.substring(6,10);
		datevalue = month +'/'+ day +'/'+ year;
	}
	DateObj = new Date(Date.parse(datevalue));
	return DateObj;
}


function GetLastBusinessDay()
{
	var ClientDate = new Date(objTodayGMT)
	var saturday = -(oneDay)
	var sunday = -(oneDay*2)
	return CheckLegalDateAutmaticGenerated(ClientDate,saturday,sunday)
}

//******************************************************************//
//
//		 this function is LIKE GetTodayFromClient but with SECURITY
//
function GetAllowedTradeDate()
{
	var ClientString=''
	var ClientDate = new Date(objTodayGMT)
	var saturday = -(oneDay)
	var sunday = -(oneDay*2)
	var monday= -(oneDay*3)
	var today=ClientDate.getTime()
	if (top.AllowedDealsDate==0)	//today only
		ClientString=GetDateToString(today)
	if (top.AllowedDealsDate==1)	//all -->today and yesterday 
		ClientString = CheckLegalDateAutmaticGenerated(ClientDate,saturday,sunday)
	if	 (top.AllowedDealsDate==-1)
		{
			if (ClientDate.getDay() == 0)
				ClientString=GetDateToString(today+(sunday))
			else
				if (ClientDate.getDay() == 1)	//monday-->friday
					ClientString=GetDateToString(today+(monday))
				else // subtract one day
					ClientString=GetDateToString(today+(saturday))
		}
	return ClientString;
}

//***************************************************
//		this function is called on onblur of opendate input
//		it checks that the odate is security allowed

function CheckAllowedTradeDate(inputObj)
{
	var ClientDate = new Date(objTodayGMT)
	var today=ClientDate.getTime()
	var openDate = StringDate2Object(inputObj.value) //clients date
	var oDateObj=openDate.getTime()

	if ((top.AllowedDealsDate==0 && Math.abs(oDateObj-today)>=oneDay) || (top.AllowedDealsDate==-1 && today-oDateObj<oneDay) ||	(top.AllowedDealsDate==1 && oDateObj>today))
	{
		alert("The date that you entered is not alowed date would be changed")
		inputObj.value=GetAllowedTradeDate()
	}
}

//************** D A T E S *************************************

function GetDateToString(dateobj,customFormat)
{
	var Today = (dateobj==null)? new Date(objTodayGMT) : new Date(dateobj) ;
	var day = Today.getDate();
	var month = Today.getMonth()+1;
	var year = Today.getFullYear();

	if (day < 10) day = '0'+day;
	if (month < 10) month = '0'+month;

	var sDateFormat;
	if (customFormat !=undefined) sDateFormat = customFormat;else sDateFormat = top.GLDateType;

	var FinalToday = (sDateFormat=='us') ? month+'/'+day+'/'+year : day+'/'+month+'/'+year;
	return FinalToday;
}


function CheckLegalDateAutmaticGenerated(date,saturday,sunday)
{
	var OutputDate,StringOutputDate;
	var OriginalDate = date;
	if (OriginalDate.getDay() == 0)
	{
		OutputDate = OriginalDate.getTime() + (sunday)
		StringOutputDate = GetDateToString(OutputDate)
	}
	else
	{
		if (OriginalDate.getDay() == 6)
		{
			OutputDate = OriginalDate.getTime() + (saturday)
			StringOutputDate = GetDateToString(OutputDate)
		}
		else
		{
			OutputDate = OriginalDate.getTime();
			StringOutputDate = GetDateToString(OutputDate);
		}
	}
	return StringOutputDate;
}


function CheckHoliday_TOL(value,curr1,curr2,direction)
{
	if ( curr1=='0' || curr2=='0') return true;
	var NewOpenDay=findholiday_TOL(value,curr1,curr2,direction)

	return NewOpenDay;
}


function SpotValueDate(date)
{
	if (!CheckLegaldateReturnValue(date))
		return false

	var ClientDate = StringDate2Object(date)
	var ClientDateInMS = ClientDate.getTime() + oneDay*2
	ClientDate = new Date(ClientDateInMS)

	var saturday = (oneDay*2)
	var sunday = (oneDay*2)
	ClientString = CheckLegalDateAutmaticGenerated(ClientDate,saturday,sunday)
	return ClientString;
}


function CheckLegalDate(date,string)
{
	var OriginalDate = StringDate2Object(date);
	var message ;
	var ConfirmValue ;
	if (OriginalDate.getDay() == 0)
	{
		message= string + " is Sunday";
		ConfirmValue = window.confirm(message);
		return ConfirmValue;
	}
	else
		if (OriginalDate.getDay() == 6)
		{
			message= string + " is Saturday";
			ConfirmValue = window.confirm(message);
			return ConfirmValue;
		}
		else
			return true;
}


function CallValueDateAutoChange(DateVal)
{
	if (CheckLegaldateReturnValue(DateVal.value))
		return false;
	else
		document.forms[0].EValue.value = SpotValueDate(document.forms[0].EDexpiry.value)
}


function ValueDateCheckAutomaticAddOn(date)
{
	var ClientDate = StringDate2Object(date)
	var ClientDateInMS = ClientDate.getTime()
	ClientDate = new Date(ClientDateInMS)
	var saturday = (oneDay*2)
	var sunday = (oneDay*2)
	ClientString = CheckLegalDateAutmaticGenerated(ClientDate,saturday,sunday)
	return ClientString;
}


function CheckLegaldateWasEntered(DateValue)
{
	var ChkString = DateValue.value
	if (ChkString.length == 0)
		return false
	var FirstIndex = ChkString.indexOf('/');
	var LastIndex = ChkString.indexOf('/',FirstIndex+1);
	var SubStringDay = ChkString.substring(0,2)
	var SubStringMonth = ChkString.substring(3,5)
	var SubStringYear = ChkString.substring(6,10)
	if ((FirstIndex+3 != LastIndex) || (FirstIndex != 2) ||(DateValue.value.length < 10) || (DateValue.value.length > 10))
	{
		alert ('There is a problem with your date format');
		DateValue.focus()
		return false;
	}
	else
	{
		if (SubStringYear < 1900 || SubStringYear > 3000)
		{ alert('Years have to be entered between 1900-3000'); DateValue.focus(); return false; }
		else if (SubStringMonth < 1 || SubStringMonth > 12)
		{ 	alert('Months have to be entered between Jan-Dec'); DateValue.focus(); return false; }
		else if (SubStringDay < 1 || SubStringDay > 31)
		{ alert('Youv'+'e entered an illegal Day'); DateValue.focus(); return false; }
		else
		{
			var CheckOnDaysOfMonth = checkMonthLength(SubStringMonth,SubStringDay)
			if (CheckOnDaysOfMonth != true)
				return false;
			else
				if (SubStringMonth == '02')
				{
					var CheckOnFeb = checkLeapMonth(SubStringMonth,SubStringDay,SubStringYear)
					if (CheckOnFeb != true)
						return false;
				}
		}
	}
	return true
}


function checkMonthLength(mm,dd)
{
	var months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December")
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30)
	{ 	alert(months[eval(mm)] + " has only 30 days."); return false; }
	else
		if (dd > 31)
		{ 	alert(months[eval(mm)] + " has only 31 days."); return false; }
	return true
}


function checkLeapMonth(mm,dd,yyyy)
{
	if (yyyy % 4 > 0 && dd > 28)
	{ 	alert("February of " + yyyy + " has only 28 days."); return false; }
	else
		if (dd > 29)
		{ 	alert("February of " + yyyy + " has only 29 days."); return false; }
	return true
}


function findholiday(DateToCheck,curr1,curr2,holiday,saturday,sunday)
{
	var datevalue = DateToCheck
	holiday=1

	var d=false
	while(!d)
	{
		var curr1hol=false
		var curr2hol=false

		if (curr1>0)
		{
			curr1hol=checkCcyHoliday(datevalue, curr1);
			if (curr1hol)
				datevalue = addDay(datevalue, holiday)
		}

		if (!curr1hol && curr2>0)
		{
			curr2hol=checkCcyHoliday(datevalue, curr2);
			if (curr2hol)
				datevalue = addDay(datevalue, holiday)
		}

		d = (!curr1hol && !curr2hol)
	}

	stringdate=StringDate2Object(datevalue)
	NewDate=CheckLegalDateAutmaticGenerated(stringdate,saturday,sunday)
	if (NewDate!=datevalue)
		findholiday(NewDate,curr1,curr2,holiday,saturday,sunday)
	return NewDate
}


function checkCcyHoliday(datevalue, ccy)
{
	var arr, ddif, isHDay
	if (appTop.GLTodayDB=='') return false;
	ddif = daysDifference(datevalue, appTop.GLTodayDB)
	if (ddif>=0)
	{
		arr = appTop.arrCcyHolidays[ccy]
		isHDay = (arr[ddif]==1)
		return isHDay
	}
	else
		return false;
}


function checkCcyHolidayByDays(ddif, ccy)
{
	var arr, isHDay
	if (appTop.GLTodayDB=='') return false;
	if (ddif>=0)
	{
		arr = appTop.arrCcyHolidays[ccy]
		isHDay = (arr[ddif]==1)
		return isHDay
	}
	else
		return false;
}


function addDay(datevalue, direction)
{
	datevalue = StringDate2Object(datevalue);
	datevalue = datevalue.getTime() + (direction*oneDay);
	datevalue = GetDateToString(datevalue);
	return datevalue;
}


function daysDifference(strDate1,strDate2)
{
	var d1=StringDate2Object(strDate1);
	var d2=StringDate2Object(strDate2);
	var dif=d1.getTime()-d2.getTime();
	dif=dif/oneDay;
	return dif;
}


function countBusinessDays(startDate,endDate,curr1,curr2)
{
	var countDays=Math.round((endDate.getTime()-startDate.getTime())/oneDay)
	var j=0;
	var strStartDate = GetDateToString(startDate.getTime())
	var ddif = daysDifference(strStartDate, appTop.GLTodayDB)

	for (i=1;i<(countDays+1);i++)
	{
		ddif++
		//stringValuedate = GetDateToString(startDate.getTime()+i*oneDay)
		//NewDate=findholiday_TOL(stringValuedate,curr1,curr2,1)

		//if (NewDate==stringValuedate)
		//	j++
		//if (!checkCcyHoliday(stringValuedate,curr1) && !checkCcyHoliday(stringValuedate,curr2) && !checkCcyHoliday(stringValuedate,1))
		if (!checkCcyHolidayByDays(ddif,curr1) && !checkCcyHolidayByDays(ddif,curr2) && !checkCcyHolidayByDays(ddif,1))
			j++
	}

	//prompt(j,countDays)
	return j;
}


function findholiday_TOL(NewDate,curr1,curr2,direction)
{
	var GLDT = top.GLDateType
	if (NewDate+''=='undefined') return '';
	var holiday = direction;
	var saturday = (direction==1) ? (oneDay*2):(-oneDay);
	var sunday = (direction==1) ? (oneDay*1):(-oneDay);
	var datevalue = NewDate;

	var d=false;
	while(!d)
	{
		var curr1hol=false, curr2hol=false, currUSDhol=false;
		if (curr1>0)
		{
			curr1hol=checkCcyHoliday(datevalue, curr1);
			if (curr1hol)
				datevalue = addDay(datevalue, holiday)
		}

		if (!curr1hol && curr2>0)
		{
			curr2hol=checkCcyHoliday(datevalue, curr2);
			if (curr2hol)
				datevalue = addDay(datevalue, holiday)
		}

		if ( (curr1>0 || curr2>0) && !curr1hol && !curr2hol && curr1!=1 && curr2!=1)
		{
			currUSDhol=checkCcyHoliday(datevalue, 1);
			if (currUSDhol)
				datevalue = addDay(datevalue, holiday)
		}

		d = (!curr1hol && !curr2hol && !currUSDhol)
	}
	stringdate=StringDate2Object(datevalue)
	NewDate=CheckLegalDateAutmaticGenerated(stringdate,saturday,sunday)

	if (NewDate!=datevalue)
		NewDate=findholiday_TOL(NewDate,curr1,curr2,direction)
	return NewDate
}

function findweekend_TOL(NewDate, direction)
{
	if (NewDate+''=='undefined') return '';
	var saturday = (direction==1) ? (oneDay*2):(-oneDay);
	var sunday = (direction==1) ? (oneDay*1):(-oneDay*2);
	return CheckLegalDateAutmaticGenerated(StringDate2Object(NewDate),saturday,sunday);
}


function setVal_tol(x)
{
	var GLDT = top.GLDateType;
	if (GLDT == undefined) GLDT=refByOpExD.top.GLDateType;
	if (GLDT=='us' && x.length>=10)
		value= x.slice(3,5)+'/'+x.slice(0,2)+'/'+x.slice(6,x.length);
	else
		value=x
		return value;
}


function CheckLegaldateReturnValue(DateValue)
{
	var ChkString = DateValue
	if (ChkString.length == 0)	return false

	var FirstIndex = ChkString.indexOf('/');
	var LastIndex = ChkString.indexOf('/',FirstIndex+1);
	var SubStringDay = ChkString.substring(0,2)
	var SubStringMonth = ChkString.substring(3,5)
	var SubStringYear = ChkString.substring(6,10)

	if ((FirstIndex+3 != LastIndex) || (FirstIndex != 2) ||(DateValue.length < 10) || (DateValue.length > 10)) return false;
	if (SubStringMonth < 1 || SubStringMonth > 12) return false;
	if (SubStringDay < 1 || SubStringDay > 31) return false;

	var CheckOnDaysOfMonth = checkMonthLength(SubStringMonth,SubStringDay)
	if (CheckOnDaysOfMonth != true) return false;

	if (SubStringMonth == '02')
	{
		var CheckOnFeb = checkLeapMonth(SubStringMonth,SubStringDay,SubStringYear)
		if (CheckOnFeb != true) return false;
	}
	return true ;
}


function SpotDayShift(EDate,EBuy,ESell)
{
	// EDate has to be in VALID format ONLY
	if (EDate.length == 0) EDate = '01/01/0999' ;
	if (EBuy.length == 0) EBuy = 1;
	if (ESell.length == 0) ESell = 1;

	// Is EDate holiday ? If 'yes' => set new not holiday EDate
	var EDatec = EDate
	EDatec=findholiday(EDatec,EBuy,ESell,oneDay,2*oneDay,oneDay); // not holiday and week-end
	var dayshift
	if (( EBuy == 1 && ESell == 14) || ( EBuy == 14 && ESell == 1))
		dayshift = 1;
	else dayshift = 2;
	for (var i=0; i< dayshift; i++)
	{
		EDatec = GetDateToString(StringDate2Object(EDatec).getTime()+ oneDay); // next day
		EDatec = findholiday(EDatec,EBuy,ESell,oneDay,2*oneDay,oneDay);
	}
	// diff in days
	var shift = (StringDate2Object(EDatec).getTime() -StringDate2Object(EDate).getTime())/oneDay
	return shift;
}


function DayShiftOpt(EDate,EBuy,ESell)
{
	// Shift of days for Options
	var today = new Date(objTodayGMT);
	var todayStr=GetDateToString(today.getTime());
	return SpotDayShift(EDate,EBuy,ESell)- SpotDayShift(todayStr,EBuy,ESell);
}


function RemoveRestrictedChars(el)
{
	var val=el.value;
	while (val.indexOf("*")!=-1)	val = val.replace("*",'');
	while (val.indexOf(";")!=-1)	val = val.replace(";",'');
	while (val.indexOf("'")!=-1)	val = val.replace("'",'');
	while (val.indexOf('"')!=-1)	val = val.replace('"','');
	while (val.indexOf('&')!=-1)	val = val.replace('&','');
	while (val.indexOf('%')!=-1)	val = val.replace('%','');
	while (val.indexOf('^')!=-1)	val = val.replace('^','');
	el.value=val;
}

function checkIt(e)
{
	charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode
	if (charCode > 31 && ((charCode < 48 || charCode > 57) && charCode != 46))
		return false
	return true;
}

function AddTimeShiftDiff(OriginalDate,OriginalHours,OriginalMinutes,DiffMin)
{
	//a.GTVDFinal.value=a.LimitDate.getVal()+' '+a.GTVDHours.value+'-'+a.GTVDMinutes.value;
	var OriginalDateObject = StringDate2Object(OriginalDate);
	var MyDateObj = new Date(OriginalDateObject.getFullYear(),OriginalDateObject.getMonth(),OriginalDateObject.getDate(),OriginalHours,OriginalMinutes)
	var msecondsPerMinute = 1000 * 60;
	DiffMin = Math.floor(DiffMin/60)*60

	var ResultObject = new Date(MyDateObj.getTime()-(DiffMin*msecondsPerMinute));
	return ResultObject;
}

function GetDateObjGMT(dateType)
{
	var AppletRef = refByOpExD.frames["MainWin"].frames["MainTableTop"].FRlogo.document.applets["AppClock2"];
	var DateObjLong;
	if (dateType==0) //Date
		DateObjLong = AppletRef.JGetDateTimeLong00();
	else //Date & Time
		DateObjLong= AppletRef.JGetDateTimeLong();

	DateObj = new Date();
	DateObj.setTime(parseFloat(DateObjLong));
	DateObj.setTime(DateObj.getTime()+DateObj.getTimezoneOffset()*60*1000);
	if (dateType == 0)
		{ 			
			DateObj.setHours(0,0,0);
		}
	return DateObj;
}

function GetServerGMTDiff()
{
	var AppletRef = refByOpExD.frames["MainWin"].frames["MainTableTop"].FRlogo.document.applets["AppClock2"];
	var ReturnValue = AppletRef.JGetGmtDBDiff();
	return ReturnValue;
}


function AddBusinessDays_TOL2(ccy1, ccy2, datevalue, x, direction, mindHolidays)
{
	if (mindHolidays==null) mindHolidays=true;
	for (var i=0; i<x; i++)
	{
		datevalue = addDay(datevalue, direction)
		if (mindHolidays) datevalue = findholiday_TOL(datevalue,ccy1,ccy2,direction);
		else datevalue = findweekend_TOL(datevalue, direction)
	}

	return datevalue;
}


var returnCalendarValue,winCalendar;
function openCalendar(ccy1, ccy2, datevalue)
{
	returnCalendarValue = '';
	var arr = new Array(ccy1, ccy2, datevalue)
	var x=new Array('direct', window, arr);
	window.showModalDialog(appTop.pathSite+"/Calendar.aspx?FromWhere=TOL",x,"dialogHeight:300px;dialogWidth:210px;resizable:yes");
	return returnCalendarValue;
}

function closeCalendar(x) { try{ winCalendar.close();} catch(e){} return ''; }


function getSpotDate4Today(ccy1, ccy2) { return AddBusinessDays_TOL2(ccy1, ccy2, getTodayGMT(), 2, true); }