function queryString(ji) 
{
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i=0;i<gy.length;i++) 
	{
		ft = gy[i].split("=");
		if (ft[0] == ji) 
		{
			return ft[1];
		}
	}
}
var SessionTimeout;
function init(SessionTime)
{
	SessionTimeout=SessionTime; Session_onLoad(SessionTime);
	theTable = (document.all) ? document.all.myTABLE : document.getElementById("myTABLE")
	if(theTable!=null)
	{
		theTableBody = theTable.tBodies[0];
	}
	if(document.getElementById('tabClock'))
	{
		show3();
	}
	
	//===================================================== END ==============================================
}


function deleteConfirm()
{
	if(confirm('Do you want to delete?'))
	{
		return true;
	}
	else
	{
		return false;
	}
}
//--------------------------------------------------- DISPLAY IMAGES --------------------------------------------------------
function ShowImage(fileId,imgId)
{
	imgId.src=fileId.value;
}
//-------------------------------------------------- TEXT FIELD VALIDATION ---------------------------------------------------
function validate_Text(eleId,msg)
{
	if(eleId.value=='')
	{
		alert('Enter '+msg);
		eleId.focus();
		return false;
	}
	return true;
}
function validateText(eleId,msg)
{
	if(eleId.value=='')
	{
		alert('Enter '+msg);
		eleId.focus();
		return false;
	}
	else
	{
		var val_=eleId.value;
		var valid_Str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	}
	return true;
}
function CheckUserId(eleId,msg)
{
		var val_=eleId.value;
		var valid_Str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .,-@";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	return true;
}
function CheckPassword(eleId,msg)
{
		var val_=eleId.value;
		var valid_Str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .,-@";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	return true;
}
function AddressText(eleId,msg)
{
		var val_=eleId.value;
		var valid_Str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .,-";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	return true;
}
function AlphaNumericText(eleId,msg)
{
		var val_=eleId.value;
		var valid_Str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789()-: .";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	return true;
}
//------------------------------------------------- Validate Blood Group -----------------------------------------------------

function validateBloodGroup(eleId,msg)
{
	/*if(eleId.value=='')
	{
		alert('Enter '+msg);
		eleId.focus();
		return false;
	}
	else
	{*/
		var val_=eleId.value;
		var valid_Str="abcde+ ve";
		if(valid_Str.indexOf(val_.charAt(val_.length-1))==-1)
		{
			alert("Invalid "+msg);
			eleId.focus();
			return false;
		}
	//}
	return true;
}
//------------------------------------------------- VALIDATE COMBO -----------------------------------------------------------
function validateCombo(eleId,msg)
{
	if(eleId.value=='')
	{
		alert('Select '+msg);
		eleId.focus();
		return false
	}
	return true;
}
//------------------------------------------------ CHECK MAIL ID -------------------------------------------------------------
function checkemail(emailadd)
{
	var result = false;
  	var theStr = new String(emailadd);
  	var index = theStr.indexOf("@");
  	if (index > 0)
  	{
    	var pindex = theStr.indexOf(".",index);
    	if ((pindex > index+1) && (theStr.length > pindex+2))
		result = true;
  	}
  	return result;
}
//--------------------------------------------------- CHECK CONFIRM PASSWORD -------------------------------------------------
function checkConfirmPass(eleId1,eleId2,msg)
{
	if(eleId1.value!=eleId2.value)
	{
		alert(msg);
		eleId2.value='';
		eleId2.focus();
		return false
	}
	return true;
}

//-------------------------------------------------------- CHECK PHONE NUMBER -------------------------------------------------
function check_PhoneNumber(obj)
{
	var val=obj.value;
	var validStr="0123456789 +";
	if(validStr.indexOf(val.charAt(val.length-1))==-1)
	{
		alert("Invalid Phone Number!");
		obj.focus();
		//obj.value=val.substring(0,val.length-1);
		return(false);
	}
	return true;
}
//-------------------------------------------------------- CHECK NUMBER -------------------------------------------------
function check_Number(obj,msg)
{
	var val=obj.value;
	var validStr="0123456789.";
	if(validStr.indexOf(val.charAt(val.length-1))==-1)
	{
		alert("Invalid "+msg+"!");
		obj.focus();
		return(false);
	}
	return true;
}
//-------------------------------------------------------- CHECK POSTAL CODE --------------------------------------------------
function check_ZIPCode(obj)
{
	var val=obj.value;
	var validStr="0123456789 +";
	if(validStr.indexOf(val.charAt(val.length-1))==-1)
	{
		alert("Invalid ZIP Code!");
		obj.focus();
		//obj.value=val.substring(0,val.length-1);
		return(false);
	}
	return true;
}
// ------------------------------------------------------ DATE CHECK ----------------------------------------------------------

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

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 daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

var dtCh= "/";
var minYear=1900;
var maxYear=2100;
							//CHECK DATE 
function isDate(dtStr){
	if(dtStr!="")
	{
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strDay=dtStr.substring(0,pos1)
		var strMonth=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)
		strYr=strYear
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) {
			if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
		}
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYr)
		if (pos1==-1 || pos2==-1){
			alert("The date format should be : dd/mm/yyyy")
			return false
		}
		
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
			alert("Please enter a valid day")
			return false
		}
		if (strMonth.length<1 || month<1 || month>12){
			alert("Please enter a valid month")
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
			return false
		}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
			alert("Please enter a valid date")
			return false
		}
	return true
	}
}
							// COMPARE DATE
function Compare_Date(obj1,obj2,fromstr,tostr)
{
	if(obj1.value!="" && obj2.value!="")
	{
	
		dt1=getDateObject(obj1.value,"/");
		dt2=getDateObject(obj2.value,"/");
		
		if(dt1>dt2)
		{
			alert(fromstr+" should be greater than the "+tostr+"!");
			return false;
		}
	}
	return true;
}
function Compare_DOBDOJ(obj1,obj2,fromstr,tostr)
{
	if(obj1.value!="" && obj2.value!="")
	{
	
		dt1=getDateObject(obj1.value,"/");
		dt2=getDateObject(obj2.value,"/");
		
		if(dt1>=dt2)
		{
			alert(fromstr+" should be greater than or equal to the "+tostr+"!");
			return false;
		}
	}
	return true;
}
function Compare_DOJ_FutureDate(obj1,obj2,msg)
{
	if(obj1.value!="" && obj2.value!="")
	{
	
		dt1=getDateObject(obj1.value,"/");
		dt2=getDateObject(obj2.value,"/");
		
		if(dt1>dt2)
		{
			alert(msg);
			return false;
		}
	}
	return true;
}
							// COMPARE START DATE 
function Compare_Start_Date(obj1,obj2,fromstr,tostr)
{
	if(obj1.value!="" && obj2.value!="")
	{
		dt1=getDateObject(obj1.value,"/");
		dt2=getDateObject(obj2.value,"/");
		if(dt1<dt2)
		{
			alert("Date must be between "+fromstr.value+" and "+tostr.value+ "!");
			obj1.select();
			return true;
		}
	}
}

								// COMPARE END DATE
function Compare_End_Date(obj1,obj2,fromstr,tostr)
{
	if(obj1.value!="" && obj2.value!="")
	{
		dt1=getDateObject(obj1.value,"/");
		dt2=getDateObject(obj2.value,"/");
		if(dt1>dt2)
		{
			alert("Date must be between "+fromstr.value+" and "+tostr.value+ "!");
			obj1.select();
			return true;
		}
	}
}

function getDateObject(dateString,dateSeperator)
{
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;

	//extract day portion
	curPos=dateString.indexOf(sepChar);
	cDate=dateString.substring(0,curPos);
	
	//extract month portion				
	endPos=dateString.indexOf(sepChar,curPos+1);			
	cMonth=dateString.substring(curPos+1,endPos);

	//extract year portion				
	curPos=endPos;
	endPos=curPos+5;			
	cYear=curValue.substring(curPos+1,endPos);
	
	//Create Date Object
	dtObject=new Date(cYear,cMonth,cDate);	
	return dtObject;
}

//-----------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------- Date Format -----------------------------------------------------------------------
var dateFormat = function () {
	var	token        = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloZ]|"[^"]*"|'[^']*'/g,
		timezone     = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (value, length) {
			value = String(value);
			length = parseInt(length) || 2;
			while (value.length < length)
				value = "0" + value;
			return value;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask) {
		// Treat the first argument as a mask if it doesn't contain any numbers
		if (
			arguments.length == 1 &&
			(typeof date == "string" || date instanceof String) &&
			!/\d/.test(date)
		) {
			mask = date;
			date = undefined;
		}

		date = date ? new Date(date) : new Date();
		if (isNaN(date))
			throw "invalid date";

		var dF = dateFormat;
		mask   = String(dF.masks[mask] || mask || dF.masks["default"]);

		var	d = date.getDate(),
			D = date.getDay(),
			m = date.getMonth(),
			y = date.getFullYear(),
			H = date.getHours(),
			M = date.getMinutes(),
			s = date.getSeconds(),
			L = date.getMilliseconds(),
			o = date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4)
			};

		return mask.replace(token, function ($0) {
			return ($0 in flags) ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":       "ddd mmm d yyyy HH:MM:ss",
	shortDate:       "m/d/yy",
	mediumDate:      "mmm d, yyyy",
	longDate:        "mmmm d, yyyy",
	fullDate:        "dddd, mmmm d, yyyy",
	shortTime:       "h:MM TT",
	mediumTime:      "h:MM:ss TT",
	longTime:        "h:MM:ss TT Z",
	isoDate:         "yyyy-mm-dd",
	isoTime:         "HH:MM:ss",
	isoDateTime:     "yyyy-mm-dd'T'HH:MM:ss",
	isoFullDateTime: "yyyy-mm-dd'T'HH:MM:ss.lo"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask) {
	return dateFormat(this, mask);
}
//-----------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------- Close Window -----------------------------------------------------------------
function x_Fn()
{
	window.opener.document.body.style.filter='alpha(style=0, opacity=100)';
	window.close()
}

function xFn()
{
	document.body.style.filter='alpha(style=0, opacity=20)';
}
//-----------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------- Auto Tab -----------------------------------------------------------------
function autoTab(obj1,obj2)
{
	if(obj1.value.length==obj1.getAttribute('maxLength'))obj2.focus();
}
var e=-1
function getChar(obj1,obj2)
{
if(event.keyCode>=48 && event.keyCode<=57 ){
	e+=1;if(e<obj2.getAttribute('maxLength')){str1=String.fromCharCode(event.keyCode);txtString=obj2.value;str=txtString.replace(txtString.charAt(e),str1);obj2.value=str;}else{e=-1;}}
	if(event.keyCode==37){obj1.focus();}
}
//-----------------------------------------------------------------------------------------------------------------------------------------

function Session_onLoad(SessionTime)
{
	if(document.getElementById("ses")){
	document.getElementById("ses").innerHTML="<b>[</b><font color='red'><b>"+SessionTime+"</b></font> minutes remaining to session down.<b>]</b>";}
}