// JavaScript Document
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function CheckForm(){
	if (document.getElementById('txtLogin').value == "")
	{
		alert('Please enter a username');
		return false;
	}
	else
		return true;
}

function CheckAddClientForm(){
    if (document.getElementById('clientname').value == "")
    {
        alert('Please enter a client name');
        return false;
    }
    else if (document.getElementById('username').value == "")
    {
        alert('Please enter a user name');
        return false;
    }
    else if (document.getElementById('password').value == "")
    {
        alert('Please enter a password');
        return false;
    }
    else if (!echeck(document.getElementById('email').value))
    {
        alert('Please enter a valid email address');
        return false;
    }
    else
        return true;
}

function CheckEditClientForm(){
    if (document.getElementById('clientname').value == "")
    {
        alert('Please enter a client name');
        return false;
    }
    else if (document.getElementById('username').value == "")
    {
        alert('Please enter a user name');
        return false;
    }
    else if (!echeck(document.getElementById('email').value))
    {
        alert('Please enter a valid email address');
        return false;
    }
    else
        return true;
}

function CheckAddJobForm(){
    //alert(encodeURI(document.getElementById('salary').value));
    document.getElementById('salary').value = encodeURI(document.getElementById('salary').value).replace('%C2%A3','').replace(',','');
    document.getElementById('pubcost').value = encodeURI(document.getElementById('pubcost').value).replace('%C2%A3','').replace(',','');
    
    if (document.getElementById('select').value == "0")
    {
        alert('Please select a client');
        return false;
    }
    else if (document.getElementById('jobref').value == "")
    {
        alert('Please enter a Job Reference');
        return false;
    }
    else if (document.getElementById('jobtitle').value == "")
    {
        alert('Please enter a Job Title');
        return false;
    }
    else if (document.getElementById('jobdate').value == "")
    {
        alert('Please enter a Job Date');
        return false;
    }
    else if (!isDate(document.getElementById('jobdate').value))
    {
        alert('Please enter a Job Date in the format suggested');
        return false;
    }
    else if (document.getElementById('salary').value != "" && isNaN(document.getElementById('salary').value))
    {
        alert('Please enter a valid salary (or leave blank)');
        return false;
    }
    else if (document.getElementById('pubcost').value != "" && isNaN(document.getElementById('pubcost').value))
    {
        alert('Please enter a valid publishing cost (or leave blank)');
        return false;
    }
    else
        return true;
}

function isDate(dateStr) {

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?
    
    if (matchArray == null) {
        //alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
        return false;
    }

    day = matchArray[1]; // p@rse date into variables
    month = matchArray[3];
    year = matchArray[5];

    if (month < 1 || month > 12) { // check month range
        //alert("Month must be between 1 and 12.");
        return false;
    }

    if (day < 1 || day > 31) {
        //alert("Day must be between 1 and 31.");
        return false;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        //alert("Month "+month+" doesn`t have 31 days!")
        return false;
    }

    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
            //alert("February " + year + " doesn`t have " + day + " days!");
            return false;
        }
    }
    return true; // date is valid
}


function echeck(str) {

    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
       return false
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
       return false
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false
    }

     if (str.indexOf(at,(lat+1))!=-1){
        return false
     }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        return false
     }

     if (str.indexOf(dot,(lat+2))==-1){
        return false
     }
    
     if (str.indexOf(" ")!=-1){
        return false
     }

      return true                    
}

