// JavaScript Document
var strValidation = "";

function checkBrowser(objTag) {
	
	if(objTag != "undefined") {
		return objTag;
	}
	return "This Field";
}

function format2Decimals(startVal) {
	
	newVal=startVal
	
	dotPos = startVal.indexOf(".");
	
	if (startVal.substring(dotPos+1, startVal.length).length == 1 && dotPos > 0) {
		newVal = startVal + "0";
	}
		
	return newVal;
}

function checkDropDown(obj, objName) {
	if (obj.selectedIndex == 0) {
		strValidation = strValidation + objName + " is required.";
		return false;
	}
	return true;
}

function checkNumeric(obj, objName, intMin, intMax) {
	
	var strVal = obj.value;
	
	var strValid = "0123456789.,+ ";
	
	for (i = 0;  i < strVal.length;  i++)
	{
		ch = strVal.charAt(i);

		if (strValid.indexOf(ch) == -1) {
			strValidation = strValidation + objName + " must be a numeric value.";
			return false;
		}
	}
	
	if (intMin > 0 || intMax > 0) {
		if (strVal < intMin) {
				strValidation = strValidation + objName + " must be atleast " + intMin + ".";
				return false;
		}
	
		if (strVal > intMax) {
				strValidation = strValidation + objName + " can not be higher than " + intMax + ".";
				return false;
		}
	}
	return true;
}

function getReturnDate(obj, intNoOfDays) {

	if (!checkNumeric(intNoOfDays,'No Of Days')){
		return false;	 
	}
	intNoOfDays = parseInt(intNoOfDays);

	var strVal = obj.value;
	
	var intDay = strVal.substring(0,2);
	var intMonth = strVal.substring(3,5);
	var intYear = strVal.substring(6,10);
	
	
	var startDate = new Date(intYear,intMonth-1,intDay);
	
	var newDate = new Date(startDate.getYear(),startDate.getMonth(),startDate.getDate()+intNoOfDays);
	
	var strNewDate = newDate.getDate() + "/" + (newDate.getMonth()+1) + "/" + newDate.getYear();
		
	return strNewDate;
}

function isFutureDate(strDate, noOfDays, objName) {
	
	var intDate = strDate.substring(0,2);
	var intMonth = strDate.substring(3,5);
	var intYear = strDate.substring(6,11);
		
	var testDate = new Date(intYear, (intMonth-1), intDate);
	var dateNow = new Date();
	
	if (testDate < dateNow) {
		strValidation = strValidation + "The date for " + objName + " must be a future date.<br>";
		return false;
	} else {
		dateNow.setDate(dateNow.getDate() + (noOfDays +0));
		if (testDate > dateNow) {
			strValidation = strValidation + "The date for " + objName + " cannot exceed " + noOfDays + " days in the future.<br>";
			return false;
		}
	}
	
	return true;
}

function checkDate(obj, objName) {
	
	strVal = obj.value;

	if (strVal.length != 10) {
		strValidation = strValidation + objName + " is an invalid date.  It must be in the format dd/mm/yyyy.<br>";		
		return false;
	}

	var strValid = "0123456789/";
	
	for (i = 0;  i < strVal.length;  i++)
	{
		ch = strVal.charAt(i);
		
		if (strValid.indexOf(ch) == -1) {
			strValidation = strValidation + objName + " is an invalid date.  It must be in the format dd/mm/yyyy.<br>";
			
			return false;
		}
	}

	if (strVal.charAt(2) != "/") {
		strValidation = strValidation + objName + " is an invalid date.  It must be in the format dd/mm/yyyy.<br>";
		return false;
	}

	if (strVal.charAt(5) != "/") {
		strValidation = strValidation + objName + " is an invalid date.  It must be in the format dd/mm/yyyy.<br>";
		return false;
	}
	
	return true;

}

function checkRequired(obj, objName) {
	strVal = obj.value;

	if (strVal == "" || strVal.charAt(0) == " ") {
		strValidation = strValidation + objName + " must have a value.<br>";
		
		return false;
	}
	
	return true;
}

function checkMinLength(obj, minLength, objName) {
	strVal = obj.value;

	if (strVal.length < minLength) {
		strValidation = strValidation + objName + " must be atleast " + minLength + " characters.<br>";
		
		return false;
	}
	
	return true;
}

function checkEmail(obj, objName) {
	
	strVal = obj.value;
	
	strPos1 = strVal.indexOf("@");
	strPos2 = strVal.indexOf(".", strPos1);
	
	if (strPos1 == -1 || strPos2 == -1) {
		strValidation = strValidation + objName + " is not valid.<br>";
		
		return false;
	}
	
	return true;

}

function checkTextAreaML(obj, maxLength, objName){
	strVal = obj.value;

	if (strVal.length > maxLength) {
		strValidation = strValidation + objName + " is " + strVal.length + " characters and can not be more then " + maxLength + " characters.<br>";
		
		return false;
	}
	
	return true;
}

function checkCheckBoxSelected(obj, maxNum, objName) {
		
	var intNumCheck = 0
		
	if(obj.type == "checkbox") {
		if (!obj.checked){
			strValidation = strValidation + "Please make sure you have answered the '" + objName + "' question.<br>";
			return false;
		}
	} else {
		for (i = 0;  i < obj.length;  i++)
		{
			if (obj[i].checked){
				intNumCheck++
			}
		}
		
		if (intNumCheck == 0) {
			strValidation = strValidation + "Please make sure you have answered the '" + objName + "' question.<br>";
			return false;
		}
	
		if (intNumCheck > maxNum) {
			strValidation = strValidation + objName + " can only have a maximum of " + maxNum + " options selected.<br>";
			return false;
		}
	}
	return true;
}



function dateDiff(stDate,edDate,ret) {
	
	var intStartDay = stDate.substring(0,2);
	var intStartMonth = stDate.substring(3,5);
	var intStartYear = stDate.substring(6,10);

	var intEndDay = edDate.substring(0,2);
	var intEndMonth = edDate.substring(3,5);
	var intEndYear = edDate.substring(6,10);


	var start = new Date(intStartYear,(intStartMonth-1),intStartDay); 

	
	var end = new Date(intEndYear,(intEndMonth-1),intEndDay);
	
	//ret should contain one of the following, defaults to milliseconds 
	if(ret=='days') {  
		return Math.ceil((end.getTime() - start.getTime()) / (24*60*60*1000));  
	} else if(ret=='hours') {  
		return Math.ceil((end.getTime() - start.getTime()) / (60*60*1000));  
	} else if(ret=='minutes') {  
		return Math.ceil((end.getTime() - start.getTime()) / (60*1000));  
	} else if(ret=='seconds') {   
		return Math.ceil((end.getTime() - start.getTime()) / 1000);
	} else {  
		return Math.ceil(end.getTime() - start.getTime());  
	} 

} 

function checkRadioSelected(obj, maxNum, objName) {
		
	var intNumCheck = 0
		
	for (i = 0;  i < obj.length;  i++)
	{
		if (obj[i].checked){
			intNumCheck++;
		}
	}

	if (intNumCheck == 0) {
		strValidation = strValidation + "Please make sure you have answered the '" + objName + "' question.<br>";
		return false;
	}

	return true;
}
