var vMonth = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var vDay = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var vNow = new Date();
var str = String(vNow.getDate());
var vCurrentDay = vNow.getDate();
var vCurrentYear = vNow.getFullYear();

// initialize date variables
vMonthArab = new Array("&#1610;&#1606;&#1575;&#1610;&#1585;","&#1601;&#1576;&#1585;&#1575;&#1610;&#1585;","&#1605;&#1575;&#1585;&#1587;","&#1571;&#1576;&#1585;&#1610;&#1604;","&#1605;&#1575;&#1610;&#1608;","&#1610;&#1608;&#1606;&#1610;&#1608;","&#1610;&#1608;&#1604;&#1610;&#1608;","&#1571;&#1594;&#1587;&#1591;&#1587;","&#1587;&#1576;&#1578;&#1605;&#1576;&#1585;","&#1575;&#1603;&#1578;&#1608;&#1576;&#1585;","&#1606;&#1608;&#1601;&#1605;&#1576;&#1585;","&#1583;&#1610;&#1587;&#1605;&#1576;&#1585;");
vDayArab = new Array("&#1575;&#1604;&#1575;&#1581;&#1583;","&#1575;&#1604;&#1575;&#1579;&#1606;&#1610;&#1606;","&#1575;&#1604;&#1579;&#1604;&#1575;&#1579;&#1575;&#1569;","&#1575;&#1604;&#1575;&#1585;&#1576;&#1593;&#1575;&#1569;","&#1575;&#1604;&#1582;&#1605;&#1610;&#1587;","&#1575;&#1604;&#1580;&#1605;&#1593;&#1577;","&#1575;&#1604;&#1587;&#1576;&#1578;");
vNowArab = new Date();
var strArab = String(vNow.getDate());

vCurrentDayArab = "";
for(x=0; x<=str.length; x++){
	if(str.substring(x,1) != ''){
		if (parseInt(str.substring(x,1))==0){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1632;';
		}else if (parseInt(str.substring(x,1))==1){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1633;';
		}else if (parseInt(str.substring(x,1))==2){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1634;';
		}else if (parseInt(str.substring(x,1))==3){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1635;';
		}else if (parseInt(str.substring(x,1))==4){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1636;';
		}else if (parseInt(str.substring(x,1))==5){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1637;';
		}else if (parseInt(str.substring(x,1))==6){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1638;';
		}else if (parseInt(str.substring(x,1))==7){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1639;';
		}else if (parseInt(str.substring(x,1))==8){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1640;';
		}else if (parseInt(str.substring(x,1))==9){
			vCurrentDayArab = String(vCurrentDayArab) + '&#1641;';
		}
	}
}

strArab =  "";
strArab = String(vNow.getFullYear());
//alert(vCurrentDayArab.length)
vCurrentYearArab = "";
for(x=0; x<=str.length; x++){
	if(str.substring(x,1) != ''){
		if (parseInt(str.substring(x,1))==0){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1632;';
		}else if (parseInt(str.substring(x,1))==1){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1633;';
		}else if (parseInt(str.substring(x,1))==2){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1634;';
		}else if (parseInt(str.substring(x,1))==3){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1635;';
		}else if (parseInt(str.substring(x,1))==4){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1636;';
		}else if (parseInt(str.substring(x,1))==5){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1637;';
		}else if (parseInt(str.substring(x,1))==6){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1638;';
		}else if (parseInt(str.substring(x,1))==7){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1639;';
		}else if (parseInt(str.substring(x,1))==8){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1640;';
		}else if (parseInt(str.substring(x,1))==9){
			vCurrentYearArab = String(vCurrentYearArab) + '&#1641;';
		}
	}
}

/***************************************************/
//Start: used for the menu for Englsih
	var display  = true;
	function findPosX(obj){
		var curleft = 0;
		if(obj.offsetParent)
			while(1) {
			  curleft += obj.offsetLeft;
			  if(!obj.offsetParent)
				break;
			  obj = obj.offsetParent;
			}
		else if(obj.x)
			curleft += obj.x;

		return curleft;		
	  }

	function findPosY(obj){
    	var curtop = 0;
    	if(obj.offsetParent)
        	while(1){
          		curtop += obj.offsetTop;
          		if(!obj.offsetParent)
            		break;
          		obj = obj.offsetParent;
        	}
    	else if(obj.y)
        	curtop += obj.y;
	
		return curtop;
	  }
  
	function hideDIV(showdiv){
		document.getElementById(showdiv).style.display = 'none';
		return true;	
	}

	function showDIV(showdiv,tdname){
		document.getElementById(showdiv).style.left = findPosX(tdname) + 'px';
		document.getElementById(showdiv).style.top = findPosY(tdname) + 13 + 'px';
		document.getElementById(showdiv).style.display = 'inline';
		return true;	
	}

//End: used for the menu for English
/***************************************************/


/***************************************************/
//Start: used for the menu for Arabic
	var displayarab  = true;
	function findPosXarab(obj){
		var curleft = 0;
		if(obj.offsetParent)
			while(1) {
			  curleft += obj.offsetLeft;
			  if(!obj.offsetParent)
				break;
			  obj = obj.offsetParent;
			}
		else if(obj.x)
			curleft += obj.x;

		return curleft;		
	  }

	function findPosYarab(obj){
    	var curtop = 0;
    	if(obj.offsetParent)
        	while(1){
          		curtop += obj.offsetTop;
          		if(!obj.offsetParent)
            		break;
          		obj = obj.offsetParent;
        	}
    	else if(obj.y)
        	curtop += obj.y;
	
		return curtop;
	  }
  
	function hideDIVarab(showdiv){
		document.getElementById(showdiv).style.display = 'none';
		return true;	
	}

	function showDIVarab(showdiv,tdname,tdsource){
		//alert(findPosXarab(tdsource));
		//alert(findPosYarab(tdsource));
		document.getElementById(showdiv).style.left = findPosXarab(tdsource) + 127 + 'px';
		document.getElementById(showdiv).style.top = findPosYarab(tdname) + 15 + 'px';
		document.getElementById(showdiv).style.display = 'inline';
		return true;	
	}

//End: used for the menu for Arabic
/***************************************************/

function validateFilename(formid){
	var valuetobevalidated = document.getElementById(formid).value;
	var filevalid = /^[a-zA-Z_0-9.:\\/-]+$/;
	if (!filevalid.test(valuetobevalidated)) { 
		return false; 
	}
	return true;
}

function isNumberKey(evt){
	var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
    	return false;
	return true;
}

function trim(string){
	string = ltrim(string);
	return rtrim(string);
}
	
function rtrim(string){
	while(string.charAt((string.length -1))==" ")
		string = string.substring(0,string.length-1);
	return string;
}
	
function ltrim(string){
	while(string.charAt(0)==" ")
		string = string.replace(string.charAt(0),"");
	return string;
}
	
function Mid(STRING,START,END){
	if(!START){START=0};
	if(!END || END > STRING.length){END=STRING.length};
	if(END!=STRING.length){END = START + END};
	return STRING.substring(START,END);
}

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;
}

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 isDate(dtStr){
	
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;
	
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strMonth=dtStr.substring(0,pos1);
	var strDay=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){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
	return true;
}
	
function checkEmail(vValue) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(vValue)){
		return true;
	}
	return false;
	
}
	
function checkNumber(x){
	var vthenumber = x;
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if ( anum.test(vthenumber) )
		return true;
	return false;
}

//Used to validate required entries 
function requiredEntry(contrlname,msg){
	var ctrltype = document.getElementById(contrlname).type;
	var ctrlvalue = trim(document.getElementById(contrlname).value);

	if (ctrlvalue.length == 0){
		if ( (ctrltype == 'text') || (ctrltype == 'textarea') ){
			alert("Sorry, "+ msg +" is required.");
			document.getElementById(contrlname).focus();
			document.getElementById(contrlname).select();
		}else if (ctrltype =='select' ){
			alert("Sorry, "+ msg +" is required.");
			document.getElementById(contrlname).focus();
		}
		return true;
	}
	return false;
}

function transactionMode(mode){
	document.getElementById('cmdadd').disabled = !mode;
	document.getElementById('cmdedit').disabled = !mode;
	document.getElementById('cmddelete').disabled = !mode;
	document.getElementById('cmdsave').disabled = mode;
	document.getElementById('cmdcancel').disabled = mode;
	controlMode(mode);
	return true;
}

function clickAdd(controlinfocus){
	clearControls();
	transactionMode(false);
	document.getElementById(controlinfocus).focus();
	return true;
}

function clickEdit(controlinfocus){
	var txtselected = document.getElementById('txtselected').value;
	if( parseFloat(txtselected) == 0 ){
		alert("Sorry, you have to choose a record to edit.");
		return false;
	}else{
		document.getElementById('txtaction').value = "Edit";
		transactionMode(false);
		document.getElementById(controlinfocus).focus();
		if (document.getElementById(controlinfocus).type=='text')
			document.getElementById(controlinfocus).select();
		
		return true;
	}
}

function clickDelete(){
	document.getElementById('txtaction').value = "Delete";
	document.getElementById('txtselected').disabled = false;
	return true;	
}

function clickCancel(){
	transactionMode(true);
	clearControls();
	return true;
}

function clickSave(){
	transactionMode(true);
	return true;
}

function transactionMessage(mflag,mMsg,mURL){
	if (parseInt(mflag)==1){
		alert('Transaction successful!');
		window.location = mURL;
	}else{
		alert('Sorry, your transaction failed.\n\n' + mMsg);
	}
	return true;
}

function controlMode(mode){
	var c = document.getElementsByTagName("body")[0].getElementsByTagName("*");
	var vtagname = "";
  	for (var x=0; x<c.length; x++) {
		vtagname = c[x].tagName;
		var control = c[x].id;
		if ( (vtagname == 'INPUT') || (vtagname == 'TEXTAREA') || (vtagname == 'SELECT') ){
			if ( (left(control,3) == 'txt') || (left(control,3) == 'chk') || (left(control,3) == 'cbo') )
				document.getElementById(control).disabled = mode;
		}
	}
	return true;
}

function clearControls(){
	var c = document.getElementsByTagName("body")[0].getElementsByTagName("*");
	var vtagname = "";
  	for (var x=0; x<c.length; x++) {
		vtagname = c[x].tagName;
		if (vtagname == 'INPUT'){
			var control = c[x].id;
			if (left(control,3) == 'chk') 
				document.getElementById(control).checked = false;
			else if (left(control,3) == 'txt' )
				document.getElementById(control).value = "";
		}else if (vtagname == 'TEXTAREA'){
			document.getElementById(control).innerText = "";
			document.getElementById(control).value = "";
		}else if (vtagname == 'SELECT'){
			//document.getElementById(control).value = 0;
		}
	}
	return true;
}

function left(str, n){
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else
		return String(str).substring(0,n);
}

function right(str, n){
	if (n <= 0)
	   return "";
	else if (n > String(str).length)
	   return str;
	else {
	   var iLen = String(str).length;
	   return String(str).substring(iLen, iLen - n);
	}
}

function checkStartEndDates(vStartDate,vEndDate){
	var basicage
	
	var newBirthDate = new Date(vStartDate);
	var newDateToday = new Date(vEndDate);

	var vBirthDay = newBirthDate.getDate();
	var vBirthMonth = newBirthDate.getMonth() + 1;
	var vBirthYear = newBirthDate.getFullYear();

	var vDayToday = newDateToday.getDate();
	var vMonthToday = newDateToday.getMonth() + 1;
	var vYearToday = newDateToday.getFullYear();
	
	basicage = vYearToday - vBirthYear;
	
	if (basicage >= 0 ){
		if ( vBirthMonth > vMonthToday ){
			basicage = basicage - 1;
		}else if (vBirthMonth == vMonthToday ){
			if ( vBirthDay > vDayToday ){
				basicage = basicage - 1;
			}
		}
	}
	
	if (basicage >=0 )
		return true;
	else
		return false;
}