// Variable Declaration

months = new Array('January','February','March','April','May','June','July','August','September','October','November','December')
smonths = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')


// General Functions

var GenWin
function popGenWin(i,w,h) {
var winX,winY
winX=(screen.availWidth-w)/2; winY=(screen.availHeight-h)/2
GenWin=window.open(i,"WinGen","width="+w+",height="+h+",left="+winX+",top="+winY+",scrollbars")
GenWin.focus()
}


// Form Functions

function isBlank(input){
if(!input.value) {return true}
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /\S/
	if(!regExp1.test(inputStr)) {return true}; return false
}}

function isNumber(input){
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /[^0-9]/
	if(regExp1.test(inputStr)) {
		//alert("Please ensure that entries are numbers only.");
		//input.value=input.defaultValue;
		input.focus();
		return false;
		} 
	return true;
	}
}

function isAlphaNum(input){
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /[^a-zA-Z0-9]/
	if(regExp1.test(inputStr)) {
		alert("Please ensure that entries are alphanumeric only.");
		//input.value=input.defaultValue;
		input.focus();
		return false;
		} 
	return true;
	}
}

function isAlpha(input){
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /[^a-zA-Z ]/
	if(regExp1.test(inputStr)) {
		alert("Please ensure that entries are alphabets only.");
		//input.value=input.defaultValue;
		input.focus();
		return false;
		}
	return true;
	}
}

function isEmail(input){
var inputStr=input.value
if(window.RegExp && inputStr){
	var regstr1 = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)"
	var regstr2 = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"
	var regExp1 = new RegExp(regstr1)
	var regExp2 = new RegExp(regstr2)
	var regExp3 = /[^a-zA-Z0-9\-_.@]/
	if(!(!regExp1.test(inputStr) && regExp2.test(inputStr) && !regExp3.test(inputStr)) || !(inputStr.indexOf("@")>=0)) {
		//alert("Please enter a valid Email Address.");
		//input.value=input.defaultValue;
		input.focus();
		return false;
		}
	return true;
	}
}

function isFileName(input){
var inputStr=input.value,r=isFileName.arguments
if(window.RegExp && inputStr){
	var fileName = inputStr.substring(inputStr.lastIndexOf("\\")+1,inputStr.lastIndexOf("\."))
	var fileExt = inputStr.substring(inputStr.lastIndexOf("\.")+1,inputStr.length)
	var regstr1 = "\\b"+r[1]+"\\b"
	for(i=2;i<r.length;i++) {regstr1=regstr1+"|\\b"+r[i]+"\\b"}
	var regExp1 = new RegExp(regstr1)
	var regExp2 = /[^a-zA-Z0-9-_]/
	if(regExp2.test(fileName) || !regExp1.test(fileExt)) {alert("For web compatibility, please use only alphanumeric, dash or underscore in your file name.\nPlease also ensure that the correct file extension is used.");input.focus();return false}; return true
}}

function chkField(input,min,type){
var format="characters"
if(type=="n") {isNumber(input); format="digits"}
else if(type=="an") {isAlphaNum(input)}
else {isBlank(input)}
var inputStr=input.value
if(window.RegExp && inputStr){
	inputStr=inputStr.replace(/^\s+/,""); inputStr=inputStr.replace(/\s+$/,"")
	if(min && inputStr.length<min) {alert("Please enter a minimum of "+min+ " " +format+ ".");input.focus()}
}}

function chkMaxLen(input,max){
var inputStr=input.value
if(max && inputStr.length>max) {alert("Your message has exceeded the maximum length of "+max+" characters.\n\nPlease shorten your entry.");input.value=inputStr.substring(0,max);input.focus()}
}

function chkSelect(input){
if(!input.length) {if(input.checked) return true}
else {for(i=0;i<input.length;i++) {if(input[i].checked) return true}}
return false
}

function isDate(input){
var inputStr=input.value, dateok=0;
inputStr=input;
if(window.RegExp && inputStr){
	var regExp1 = /\d{1,2}[\/]\d{1,2}[\/]\d{4}$/
	if(regExp1.test(inputStr)){
		var cDate=new Date()
		dmy=inputStr.split("/");cDate.setDate(1);cDate.setFullYear(parseInt(dmy[2],10));cDate.setMonth(parseInt(dmy[1],10)-1);cDate.setDate(parseInt(dmy[0],10))
		if(!(cDate.getDate()!=parseInt(dmy[0],10) || cDate.getMonth()!=(parseInt(dmy[1],10)-1) || cDate.getFullYear()!=parseInt(dmy[2],10) || parseInt(dmy[2],10)<1900)) {dateok = 1}
	}
	if(!dateok) {
		//alert("Please ensure that the date is valid - DD/MM/YYYY.");
		return false
	} 
	return true
}}


function isFwdDate(sd,sm,sy,min,cd,cm,cy){
var sDate=new Date(); cDate=new Date()
sDate.setDate(1);sDate.setFullYear(parseInt(sy,10));sDate.setMonth(parseInt(sm,10)-1);sDate.setDate(parseInt(sd,10))
if(cd&&cm&&cy) {cDate.setDate(1);cDate.setFullYear(parseInt(cy,10));cDate.setMonth(parseInt(cm,10)-1);cDate.setDate(parseInt(cd,10))}
if(min) {cDate.setDate(cDate.getDate()+min)}
if(sDate.getTime()<cDate.getTime()) {return false}
return true
}

function writeDateList(dd){
for(i=1; i<=31; i++){
	if(i==parseInt(dd,10)) {document.write("<option value="+insZero(i,2)+" selected>"+insZero(i,2))}
	else {document.write("<option value="+insZero(i,2)+">"+insZero(i,2))}
}}
function writeMonthList(mm){
for(i=1; i<=12; i++){
	if(i==parseInt(mm,10)) {document.write("<option value="+insZero(i,2)+" selected>"+smonths[i-1])}
	else {document.write("<option value="+insZero(i,2)+">"+smonths[i-1])}
}}
function insZero(num,sf){
var inputStr=num.toString()
while(inputStr.length<sf) {inputStr="0"+inputStr}
return inputStr
}

function isYear(input){
var inputStr=input.value
if(window.RegExp && inputStr!=""){
	var regExp1 = /\b\d{4}\b/
	if(!regExp1.test(inputStr)) {alert("Please ensure that year is in YYYY format.");input.value="";input.focus();return false}; return true
}}
