
// show the new form notice
function showNotice()
{
	alert("Dear valued Business Partner: Please note that the Government Services online forms system is scheduled for an upgrade. The service will not be available starting 23 December 8pm until 24 December 4am. Sorry for the inconvenience and we look forward to serve you better.");	
}

function showNewNotice()
{
	alert("Dear valued Business Partner: Please note that the Government Services online forms system is scheduled for an upgrade. The service will not be available starting 23 December 8pm until 24 December 4am. Sorry for the inconvenience and we look forward to serve you better.");	
}

// dont submit after pressing enter
function stopRKey(evt) {
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if (evt.keyCode == 13)  {return false;}
}
document.onkeypress = stopRKey;

// clear the name text fields
function clearText(thefield,value)
{
	if (value==thefield.value)
	{
		thefield.value = "";
		thefield.style.color = "black";
	}
}

// check browser and redirect to another page if it is not IE
function checkBrowser () {
	if(navigator.appName != "Microsoft Internet Explorer") { window.location = "browser_notice.php" }
}

function addCommas(nStr)
{
	number = nStr.toString();
	if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0)) {
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			} else {
				output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
			}
		}
		return output;
	}
	else {return number; }
}

//check 
function checkDate(datefield)
{
	dateValue = datefield.value;
   // Regular expression used to check if date is in correct format
   var objRegExp = /^([0-9]){2}(-){1}([0-9]){2}(-)([0-9]){4}$/;
   if (dateValue != ''){  
	   if(objRegExp.test(dateValue) == false)
	   {
		  alert('Date format is not valid');
		  return false;
	   } else { return true;}
   } else { return true; }
}

function checkNum(numfield)
{
	numValue = numfield.value;
	if (numValue != ''){ 	
   // Regular expression used to check if input is in numbers
	   var objRegExp = /^([0-9]){1,}$/;
	   if(!objRegExp.test(numValue))
	   {
	      alert('Please enter only numbers');
	      return false;
	   } else {return true;}
	} else { return true; }
}

function checkMobile(mobilefield)
{
	mobileValue = mobilefield.value;
	if (mobileValue != ''){ 	
   // Regular expression used to check if input is in numbers
	   var objRegExp = /^([0-9]){10}$/;
	   if(!objRegExp.test(mobileValue))
	   {
	      alert('Mobile number must be 10 digits');
	      return false;
	   } else {return true;}
	} else { return true; }
}


function checkPhone (phonefield)
{
	phoneValue = phonefield.value;
	if (phoneValue !=''){
// Regular expression used to check if input is in numbers
		var objRegExp = /^([0-9]){9,18}$/;
		if(!objRegExp.test(phoneValue))
		{
			alert ('Residence Number must be a minimum of 9 digits');
			return false;
		} else{return true;}
	} else { return true; }
}
	

/* checking email address */
function checkEmail(str)
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
	   alert("Invalid Email address");
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert("Invalid Email address");
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert("Invalid Email address");
		return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		alert("Invalid Email address");
		return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("Invalid Email address");
		return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		alert("Invalid Email address");
		return false;
	 }

	 if (str.indexOf(" ")!=-1){
		alert("Invalid Email address");
		return false;
	 }
	 return true;
}
	
// change date format from dd-mm-yyy to mm-dd-yyyy
function fixDateFormat (inDate)
{
	 var dateParts = inDate.split("-");
	 selectedMonth = parseInt(dateParts[1],10);
     selectedDay = parseInt(dateParts[0],10);
     selectedYear = parseInt(dateParts[2],10);
	 
	 var outDate = selectedMonth + '-' + selectedDay + '-' + selectedYear;
	 return outDate;
}

// used in calAge function
// this one is used to get the number of years in between two dates
// can also return the months and days
function DateDiff(oEndDate, oStartDate) 
{
	// array for number days in a month for the current year - zero based array rows and columns
	var aDaysMonth = new Array(
	[31, "Jan", "January"],
	[28, "Feb", "February"],
	[31, "Mar", "March"],
	[30, "Apr", "April"],
	[31, "May", "May"],
	[30, "Jun", "June"],
	[31, "Jul", "July"],
	[31, "Aug", "August"],
	[30, "Sep", "September"],
	[31, "Oct", "October"],
	[30, "Nov", "November"],
	[31, "Dec", "December"]
	);
		
	// adjust number of days in a month for leap century and leap year
	if ((oEndDate.getYear() % 4) == 0) // leap
		aDaysMonth[1][0] = 29; // leap year then February has 29 days
	if (((oEndDate.getFullYear() % 400) != 0) & (oEndDate.getYear() == 0)) // check not leap century
		aDaysMonth[1][0] = 28; // if century is not a leap century then February has 28 days
		
	var endYear = oEndDate.getFullYear(); // get the full year from the end date object
	var endMonth = oEndDate.getMonth(); // get the zero based month from the end date object
	var endDate = oEndDate.getDate(); // get the date from the end date object
	
	var startYear = oStartDate.getFullYear(); // get the full year from the start date object
	var startMonth = oStartDate.getMonth(); // get the zero based month from the start date object
	var startDate = oStartDate.getDate(); // get the date from the start date object
		
	var diffYear = endYear - startYear;
	var diffMonth = endMonth - startMonth;
	var diffDate = endDate - startDate;
		
	// see if need to borrow from month
	if (diffDate < 0) 
	{
		diffDate = diffDate + aDaysMonth[startMonth][0]; // add number of days for start date's month
		--diffMonth; // de cress start month by one
	}
		
	// see if need to borrow from Year
	if (diffMonth < 0) 
	{
		diffMonth += 12; // add 12 months to diffMonth
		--diffYear; // decrease 1 year
	} // end if diffMonth < 0
		return [diffMonth,diffYear];
}
   
// alerts if the passport expiry date is less than 6 months
function calPED()
{
	if(checkDate(myForm.PED)== true)
	{
		var PED = fixDateFormat(myForm.PED.value);
		var PED = new Date(PED);
		var today = new Date();
		if(today>PED) { alert("The passport must be valid for at least 6 months as per Dubai Immigration requirements. Kindly renew the passport and apply again.");}
		else {
			$ageArray = DateDiff(PED,today);
			year = $ageArray[1];
			month = $ageArray[0];
			if (year<1 && month<6) { alert("The passport must be valid for at least 6 months as per Dubai Immigration requirements. Kindly renew the passport and apply again.");}
		}
	}
}

// calculate for days between today and a provided date
function days(d1)
{	
	var today = new Date();
	//Set 1 day in milliseconds
	var one_day=1000*60*60*24;	
	//Calculate difference btw the two dates, and convert to days
	var daysPassed = (today.getTime()-d1.getTime())/(one_day);
	// var daysRounded = parseInt(daysPassed)
	return daysPassed;
}
	
// alerts if the passport issue date is in future
function calPID()
{
	if(checkDate(myForm.PID)== true)
	{
		var PID = fixDateFormat (myForm.PID.value);
		var PID= new Date(PID);
		var today = new Date();
			
		//alerts if the passport issue date is in future
		if(today.getTime()<PID.getTime())
		{
			alert("The passport issue date cannot be in future.");
			myForm.PID.focus();
			return false;
		}
	}
}

// alerts if the date is in future
function isFutureDate(dateField)
{
	var dateField = fixDateFormat (dateField.value);
	var dateValue = new Date(dateField);
	var today = new Date();
		
	//alerts if the passport issue date is in future
	if(today.getTime()<dateValue.getTime())
	{
		alert("Date cannot be in future.");
		return false;
	}
}

// alerts if the date is in past
function isPastDate(dateField)
{
	var dateField = fixDateFormat (dateField.value);
	var dateValue = new Date(dateField);
	var today = new Date();
		
	//alerts if the passport issue date is in future
	if( (oday.getTime()) > (dateValue.getTime()))
	{
		alert("Date cannot be in the past.");
		return false;
	}
}

// add leading zero for todays date
function leadingZero(x){
   return (x>9)?x:'0'+x;
}

// get todays date in mm-dd-yyyy format
function getTodayDate ()
{
	var d = new Date();
	var curr_date = d.getDate();
	var curr_month = d.getMonth();
	var curr_year = d.getFullYear();
	
	curr_date = leadingZero(curr_date);
	curr_month = leadingZero(curr_month + 1);
	var date = curr_date + "-" + curr_month + "-" + curr_year;
	myForm.date.value = date;
}

// open the window
function openWindow(url,width,height,options,name) 
{
	width = width ? width : 570;
    height = height ? height : 400;
    options = options ? options : 'resizable=yes,scrollbars=yes';
    name = name ? name : 'openWindow';
    window.open(url,name,'screenX='+(screen.width-width)/2+',screenY='+(screen.height-height)/2+',width='+width+',height='+height+','+options);
}

// generating tool tips
var cX = 0; var cY = 0; var rX = 0; var rY = 0;

function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}

function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}

if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }

function AssignPosition(d) {
	if(self.pageYOffset) {
		rX = self.pageXOffset;
		rY = self.pageYOffset;
		}
	else if(document.documentElement && document.documentElement.scrollTop) {
		rX = document.documentElement.scrollLeft;
		rY = document.documentElement.scrollTop;
		}
	else if(document.body) {
		rX = document.body.scrollLeft;
		rY = document.body.scrollTop;
		}
	if(document.all) {
		cX += rX; 
		cY += rY;
		}
	d.style.left = (cX+10) + "px";
	d.style.top = (cY+10) + "px";
}
function HideContent(d) {
	if(d.length < 1) { return; }
	document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
	if(d.length < 1) { return; }
	var dd = document.getElementById(d);
	AssignPosition(dd);
	dd.style.display = "block";
}
	function ReverseContentDisplay(d) {
	if(d.length < 1) { return; }
	var dd = document.getElementById(d);
	AssignPosition(dd);
	if(dd.style.display == "none") { dd.style.display = "block"; }
	else { dd.style.display = "none"; }
}

function checkLength(maxLen, field)
{
	if (field.value.length >= maxLen) {
		alert("You have reached your maximum limit of characters allowed");
		field.value = field.value.substring(0, maxLen);
	}
}

