//
// General Variables/Functions
//

var bV=parseInt(navigator.appVersion)
var NS4=(document.layers)?1:0
var IE4=((document.all)&&(bV>=4))?1:0
var DOM=((document.getElementById)&&(!IE4))?1:0
var smonths = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')

function getPos(o,y) {var d=document,p=0;if(d.all) {while(o!=d.body) {p+=y?o.offsetTop:o.offsetLeft;o=o.offsetParent}} else {p=y?o.y:o.x};return p}


//
// Pop-Up Window
//

//var path_to_cgi="/cgi-bin/tell_friend.cgi";
var path_to_cgi='';
var domain='http://mfm06.notionage.com'

function emailfriend(){
path_to_cgi='http://mfm06.notionage.com/tell_friend/tell_friend.php';
path_to_cgi += '?url=' + domain;
window.open(path_to_cgi,"EmailFriend","toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,directories=no,copyhistory=no,width=430,height=470");
}

/*var tafWin
function poptafWin(i) {
	var w=430,h=450,winX=(screen.availWidth-w-250),winY=100
	tafWin=window.open(i,"WinMessage","width="+w+",height="+h+",left="+winX+",top="+winY+",status=no,menubar=no,toolbar=no")
}*/

var subscribeWin
function popsubscribeWin(i) {
	var w=430,h=450,winX=(screen.availWidth-w-250),winY=100
	subscribeWin=window.open(i,"WinMessage","width="+w+",height="+h+",left="+winX+",top="+winY+",status=no,menubar=no,toolbar=no")
}


//
// Customise Form Functions
//

var errHdr, errMsg, errArr=Array("","is required","is not selected","not specified","is invalid","is incomplete","entries did not match")
function genErrMsg(){
	arg=genErrMsg.arguments; msg=arg[0]; err=arg.length>1?arg[1]:0
	errMsg = errMsg + "-> "+msg+" "+errArr[err]+"\t\n"
}
function initErrMsg(){
	errHdr = "\n"
	errMsg = ""
}
initErrMsg()


//
// General Form Functions
//

function isBlur(input,s){
if(s) {if(isBlank(input)) {input.value=input.defaultValue;return false}; return true}
else {if(input.value==input.defaultValue) {input.value="";return false}}
}

function isBlank(input){
if(!input.value) {return true}
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /\S/
	if(!regExp1.test(inputStr)) {input.value="";return true}; return false
}}

function isNumber(input){
var inputStr=input.value
if(window.RegExp && inputStr){
	var regExp1 = /[^0-9]/
	if(regExp1.test(inputStr)) {alert("Invalid entry.\n\nPlease ensure that entries are numbers (0-9) 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("Invalid entry.\n\nPlease use alphabets (a-z) and/or numbers (0-9) only.\n\nYour entry cannot contain any spacing or punctuation.");input.value=input.defaultValue;input.focus();return false}; return true
}}

function isMobile(input){
var inputStr=input.value, initStr=input.defaultValue
if(!inputStr) input.value=initStr
if(window.RegExp && inputStr && inputStr!=initStr){
	var regExp1 = /\b658\d{7}\b/
	var regExp2 = /\b659\d{7}\b/
	if(!regExp1.test(inputStr) && !regExp2.test(inputStr)) {alert("Invalid entry.\n\nPlease ensure you have entered a valid Mobile No.");input.value=initStr;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("Invalid entry.\n\nPlease enter a valid Email Address.");input.value=input.defaultValue;input.focus();return false}; return true
}}

function isFileName(input){
var inputStr=input.value.toLowerCase(),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(!regExp1.test(fileExt)) {return false}; return true
}}

extArray = new Array(".gif", ".jpg", ".png");
function LimitAttach(form, file) {
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\") != -1)
file = file.slice(file.indexOf("\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) { allowSubmit = true; break; }
}
if (allowSubmit) form.submit();
else
alert("Please only upload files that end in types:  " 
+ (extArray.join("  ")) + "\nPlease select a new "
+ "file to upload and submit again.");
}

extArray2 = new Array(".3gp",".3gp2", ".mov", ".mpg",".avi",".wmv");
function LimitAttachVid(form, file) {
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\") != -1)
file = file.slice(file.indexOf("\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray2.length; i++) {
if (extArray2[i] == ext) { allowSubmit = true; break; }
}
if (allowSubmit) form.submit();
else
alert("Please only upload files that end in types:  " 
+ (extArray2.join("  ")) + "\nPlease select a new "
+ "file to upload and submit again.");
}

function chkField(input,min,type){
var format="characters"
if(type=="n") {isNumber(input); format="digits"}
else if(type=="an") {isAlphaNum(input); format="alphanumeric characters (a-z and/or 0-9)"}
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("Invalid entry.\n\nPlease enter a minimum of "+min+ " " +format+ ".");input.value=input.defaultValue;input.focus()}
}}


function wordCounter(field, countfield, maxlimit) {
wordcounter=0;
for (x=0;x<field.value.length;x++) {
      if (field.value.charAt(x) == " " && field.value.charAt(x-1) != " ")  {wordcounter++}  // Counts the spaces while ignoring double spaces, usually one in between each word.
      if (wordcounter > maxlimit) {
		  field.value = field.value.substring(0, x);
		  alert("Your message has exceeded the maximum length of "+maxlimit+" words.\n\nPlease shorten your entry.");
		  field.focus();
		  }
      else {countfield.value = maxlimit - wordcounter;}
      }
   }


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 writeDateList(dd){
for(i=1; i<=31; i++){
	if(i==parseInt(dd,10)) {document.write("<option value="+insChar(i,'0',2,'left')+" selected>"+insChar(i,'0',2,'left'))}
	else {document.write("<option value="+insChar(i,'0',2,'left')+">"+insChar(i,'0',2,'left'))}
}}
function writeMonthList(mm){
for(i=1; i<=12; i++){
	if(i==parseInt(mm,10)) {document.write("<option value="+insChar(i,'0',2,'left')+" selected>"+smonths[i-1])}
	else {document.write("<option value="+insChar(i,'0',2,'left')+">"+smonths[i-1])}
}}

function isDate(day,month,year){
var cDate = new Date()
if(parseInt(year,10)<=1900) {return false}
cDate.setDate(1);cDate.setFullYear(parseInt(year,10));cDate.setMonth(parseInt(month,10)-1);cDate.setDate(parseInt(day,10))
if(cDate.getDate()!=parseInt(day,10) || cDate.getMonth()!=(parseInt(month,10)-1) || cDate.getFullYear()!=parseInt(year,10)) {return false}
return true
}

function isYear(input){
var inputStr=input.value
if(window.RegExp && inputStr){
var regExp1 = /\b\d{4}\b/
if(!regExp1.test(inputStr)||parseInt(inputStr,10)<1900) {alert("Invalid entry.\n\nPlease ensure that year is in YYYY format.");input.value=input.defaultValue;input.focus();return false}; return true
}}

function isAge(sd,sm,sy,cd,cm,cy,min,max){
var sDate=new Date(); minDate=new Date(); maxDate=new Date()
sDate.setDate(1);sDate.setFullYear(parseInt(sy,10));sDate.setMonth(parseInt(sm,10)-1);sDate.setDate(parseInt(sd,10))
minDate.setDate(1);minDate.setFullYear(parseInt(cy,10)-min);minDate.setMonth(parseInt(cm,10)-1);minDate.setDate(parseInt(cd,10))
maxDate.setDate(1);maxDate.setFullYear(parseInt(cy,10)-max-1);maxDate.setMonth(parseInt(cm,10)-1);maxDate.setDate(parseInt(cd,10))
if(sDate>minDate || sDate<=maxDate) {return false}
return true
}

function doCharCount(input,counter,max){
if(input.value.length>max) {input.value=input.value.substring(0,max)}
counter.value = insChar(max-input.value.length," ",3,"left")
}

function insChar(i,c,l,p){
var inputStr=i.toString()
while(inputStr.length<l) {inputStr=(p=="left")?c+inputStr:inputStr+c}
return inputStr
}