﻿
var numb = '0123456789';
var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function valDateFmt(datefmt) {
	myOption = -1;
	for (i=0; i<datefmt.length; i++) {if (datefmt[i].checked) {myOption = i;}}
	if (myOption == -1) {alert("You must select a date format");return ' ';}
	return datefmt[myOption].value;
}

function valDateRng(daterng) {
	myOption = -1;
	for (i=0; i<daterng.length; i++) {if (daterng[i].checked) {myOption = i;}}
	if (myOption == -1) {alert("You must select a date range");return ' ';}
	return daterng[myOption].value;
}

function stripBlanks(fld) {
	var result = "";
	var c=0;
	for (i=0; i<fld.length; i++) {
		if (fld.charAt(i) != " " || c > 0) {
			result += fld.charAt(i);
			if (fld.charAt(i) != " ") c = result.length;
		}
	}
	return result.substr(0,c);
}


function isValid(parm,val) {
	if (parm == "") return true;
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) return false;
	}
	return true;
}

function isNum(parm) {
	return isValid(parm,numb);
}

function isDate(fld,fmt,rng) {
	var dd, mm, yy;
	var today = new Date;
	var t = new Date;
	fld = stripBlanks(fld);
	if (fld == '') return false;
	var d1 = fld.split('\/');
	if (d1.length != 3) d1 = fld.split(' ');
	if (d1.length != 3) return false;
	if (fmt == 'u' || fmt == 'U') {
	  dd = d1[1]; mm = d1[0]; yy = d1[2];}
	else if (fmt == 'j' || fmt == 'J') {
	  dd = d1[2]; mm = d1[1]; yy = d1[0];}
	else if (fmt == 'w' || fmt == 'W'){
	  dd = d1[0]; mm = d1[1]; yy = d1[2];}
	else return false;

	var n = dd.lastIndexOf('st');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('nd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('rd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('th');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf(',');
	if (n > -1) dd = dd.substr(0,n);
	n = mm.lastIndexOf(',');
	if (n > -1) mm = mm.substr(0,n);
	if (!isNum(dd)) return false;
	if (!isNum(yy)) return false;
	if (!isNum(mm)) {
		var nn = mm.toLowerCase();
		for (var i=1; i < 13; i++) {
			if (nn == mth[i] || nn == mth[i].substr(0,3)) {mm = i; i = 13;}
		}
	}
	if (!isNum(mm)) return false;
	dd = parseFloat(dd);
	mm = parseFloat(mm);
	yy = parseFloat(yy);
	if (yy < 100) yy += 2000;
	if (yy < 1582 || yy > 4881) return false;
	if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
	if (mm < 1 || mm > 12) return false;
	if (dd < 1 || dd > day[mm-1]) return false;
	t.setDate(dd); 
	t.setMonth(mm-1); 
	t.setFullYear(yy);
	if (rng == 'p' || rng == 'P') {
		if (t > today) return false;
	}
	else if (rng == 'f' || rng == 'F') {
		if (t < today) return false;
	}
	else if (rng != 'a' && rng != 'A') return false;
	
	return true;
}



function isDateYearRestricted(fld,fmt,rng,minval,maxval) {
	
	
	var dd, mm, yy;
	var today = new Date;
	var t = new Date;
	fld = stripBlanks(fld);
	if (fld == '') return false;
	var d1 = fld.split('\/');
	if (d1.length != 3) d1 = fld.split(' ');
	if (d1.length != 3) return false;
	if (fmt == 'u' || fmt == 'U') {
	  dd = d1[1]; mm = d1[0]; yy = d1[2];}
	else if (fmt == 'j' || fmt == 'J') {
	  dd = d1[2]; mm = d1[1]; yy = d1[0];}
	else if (fmt == 'w' || fmt == 'W'){
	  dd = d1[0]; mm = d1[1]; yy = d1[2];}
	else return false;

	var n = dd.lastIndexOf('st');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('nd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('rd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('th');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf(',');
	if (n > -1) dd = dd.substr(0,n);
	n = mm.lastIndexOf(',');
	if (n > -1) mm = mm.substr(0,n);
	if (!isNum(dd)) return false;
	if (!isNum(yy)) return false;
	if (!isNum(mm)) {
		var nn = mm.toLowerCase();
		for (var i=1; i < 13; i++) {
			if (nn == mth[i] || nn == mth[i].substr(0,3)) {mm = i; i = 13;}
		}
	}
	if (!isNum(mm)) return false;
	dd = parseFloat(dd);
	mm = parseFloat(mm);
	yy = parseFloat(yy);
	

	if (yy > maxval) {
	   //alert("year must be " + maxval + " or earlier");
	   return false;
	   }
	   
	 if (yy < minval) {
	   //alert("year must be "+ minval + " or later");
	   return false;
	   }
	   

	if (yy < 100) yy += 2000;
	if (yy < 1582 || yy > 4881) return false;
	if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
	if (mm < 1 || mm > 12) return false;
	if (dd < 1 || dd > day[mm-1]) return false;
	t.setDate(dd); 
	t.setMonth(mm-1); 
	t.setFullYear(yy);
	
	if (rng == 'p' || rng == 'P') {
		if (t > today) return false;
	}
	else if (rng == 'f' || rng == 'F') {
		if (t < today) return false;
	}
	else if (rng != 'a' && rng != 'A') return false;
	
	return true;
}



function alphanumeric(val)
{
    if (val.match(/^[a-zA-Z0-9]+$/))
    {
        return true;
    }
    else
    {
        return false;
    } 
}


function emailchecker(val)
{
    var emailPat = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
	 
    var emailid=val;
    var matchArray = emailid.match(emailPat);
    if (matchArray == null)
    {
        return false;
    }
    return true;
}


function ShowFullDetail(ddl, strControlName)
{
     var fullDetail = ddl.options[ddl.selectedIndex].text;
     fullDetail = fullDetail.replace(/,/g, '<br/>&nbsp;');

     var spn = document.getElementById(strControlName);
     spn.innerHTML = '&nbsp;&nbsp;' + fullDetail;
}


function SetDays(dayboxid, monthboxid, yearboxid, bBlank)
{
    var iDays = 31;
    var daybox = document.getElementById(dayboxid);
    var monthbox = document.getElementById(monthboxid);
    var yearbox = document.getElementById(yearboxid);
    var dayselected = daybox.value;

    switch (monthbox.value)
    {
        case '2':
            if (checkleapyear(yearbox.value))
                {iDays = 29;}
            else
                {iDays = 28;}
            break;
        case '4':
        case '6':
        case '9':
        case '11':
            iDays = 30;
            break;
    }
    
    daybox.options.length = 0;
    
    if (bBlank == true)
    {
        var opt = document.createElement("option");
        opt.value = '';
        daybox.options.add(opt);
    }
    
    for (var i = 1; i <= iDays; i++)
    {
        var opt = document.createElement("option");
        opt.value = i;
        if (i < 10) 
            {i = '0' + i;}
        opt.text = i;
        if (i == dayselected){
          // alert(dayselected);
            daybox.options.add(opt);
          // daybox.options[opt].selected = true;
        }
        else 
            {daybox.options.add(opt);}
    }
    document.getElementById(dayboxid).value = dayselected;
    //daybox.selected = dayselected;
}

function checkleapyear(datea)
{
    datea = parseInt(datea);
    if(datea%4 == 0)
    {
        if(datea%100 != 0)
            {return true;}
        else
        {
            if(datea%400 == 0)
                return true;
            else
                return false;
        }
    }
    return false;
}

function isSpace(datea)    
{ 
    var name = document.getElementById("ctl00_WebtoolsMain_txtSearchName");
    // alert(name.value);
    if (name.value == ""){
        if(datea == ""){
            alert('Please enter a post code');
            return false;
       }
    }
   
    if (datea != "" && datea.indexOf(" ") == -1 ) 
    {
        return false;
    }
    return true;  
}  


