﻿function checkControl(id)
{
    if (document.getElementById(id).value=="")
        {document.getElementById(id).style.border="solid 2px red";}
    else
        {document.getElementById(id).style.cssText = "";}
}


function checkSelect(id)
{
    if (document.getElementById(id).value=="")
        {document.getElementById(id).options[0].style.color="red";}
    else
        {document.getElementById(id).options[0].style.cssText = "";}
}


function checkLength(id,length,reqd)
{
    var val;
    val = document.getElementById(id).value;
    if (reqd==1)
    {
        if (val.length < length || (!isInteger(val)))
            {document.getElementById(id).style.border="solid 2px red"; return false;}
        else
            {document.getElementById(id).style.cssText = ""; return true;}
    }
    if (reqd==0)
    {
        if ((val.length < length && val!="") || (!isInteger(val)))
            {document.getElementById(id).style.border="solid 2px red"; return false;}
        else
            {document.getElementById(id).style.cssText = ""; return true;}
    }
}


function checkRadios(name)
{
    var str;
    rdo = document.contact.elements[name];
    for (i=0;i<rdo.length;i++)
    {
        if (rdo[i].checked==true)
        {return true;}
    }
return false;
}


function isInteger(s)
{
   var i;
   for (i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);
      if (!((c >= "0") && (c <= "9"))) return false;
   }
   return true;
}


function checkInteger(id,reqd)
{
    var val = document.getElementById(id).value;
    if (reqd==1)
    {
        if (val=="" || (!isInteger(val)))
            {document.getElementById(id).style.border="solid 2px red"; return false;}
        else
            {document.getElementById(id).style.cssText = ""; return true;}
    }
    if (reqd==0)
    {
        if (val!="" && (!isInteger(val)))
            {document.getElementById(id).style.border="solid 2px red"; return false;}
        else
            {document.getElementById(id).style.cssText = ""; return true;}
    }  
}


function validateCompare(cntrl1,cntrl2)
{
    if ((document.getElementById(cntrl1).value != document.getElementById(cntrl2).value))// || document.getElementById(cntrl1).value == "")
         //   && (document.getElementById(cntrl2).value != ""))
        {document.getElementById(cntrl1).style.border="solid 2px red";
        document.getElementById(cntrl2).style.border="solid 2px red"; return false;}
    else
        {document.getElementById(cntrl1).style.cssText = "";
        document.getElementById(cntrl2).style.cssText = ""; return true;}
}


function checkControls(p)
{
    var r=true;
    var t=false;
    var s;
    var elem = document.getElementById("contact").getElementsByTagName("*");
    for(var i = 0; i < elem.length; i++)
    {
      if (elem[i].name) 
      {
        if ((elem[i].id!="primaryphone-extension") && (elem[i].id!="secondaryphone") && (elem[i].id!="secondaryphone2") && (elem[i].id!="secondaryphone3") && 
        (elem[i].id!="secondaryphone-extension") && (elem[i].id!="ssn") && (elem[i].id!="ssn2") && (elem[i].id!="ssn3") &&
        (elem[i].name!="licenseno") && (elem[i].name!="licensename") && (elem[i].name!="age") && 
        (elem[i].name!="driverslicense") && (elem[i].name!="ca-id") && (elem[i].name!="notice-needed") && 
        (elem[i].id.indexOf("-read")<0) && (elem[i].id.indexOf("-write")<0) && (elem[i].id.indexOf("certifications")<0) &&
        (elem[i].name!="education") && (elem[i].name!="reference1") && (elem[i].name!="reference2") && (elem[i].name!="reference3")
        
        )
        {
            if (elem[i].type=="text")
            {
                if (elem[i].value=="")
                    {document.getElementById(elem[i].id).style.border="solid 2px red"; t=true; r=false;}
                else
                    {document.getElementById(elem[i].id).style.cssText = "";}
            }
            if (elem[i].type=="select-one")
            {
                if (elem[i].value=="")
                    {document.getElementById(elem[i].id).options[0].style.color="red"; t=true; r=false;}
                else
                    {document.getElementById(elem[i].id).options[0].style.cssText = "";}
            }

            if (elem[i].type=="radio" || elem[i].type=="checkbox")
            {
                if (checkRadios(elem[i].name)==false) {t=true;}
            }
        }        
      }
    }
    
    if (t==true)
        {if (document.getElementById("divgeneric"+p)) {document.getElementById("divgeneric"+p).style.display="inline"; r=false;}}
    else
        {if (document.getElementById("divgeneric"+p)) {document.getElementById("divgeneric"+p).style.display="none";}}
        
    
    if (p==1)
    {
        if ((!checkLength("primaryphone",3,0)) || (!checkLength("primaryphone2",3,0)) || 
                (!checkLength("primaryphone3",4,0)) || (!checkInteger("primaryphone-extension",0)))
            {document.getElementById("divprimaryphone").style.display="inline"; r=false;}
        else
            {document.getElementById("divprimaryphone").style.display="none";}

        checkControl("primaryphone");
        checkControl("primaryphone2");
        checkControl("primaryphone3");
        
        if ((!checkLength("secondaryphone",3,0)) || (!checkLength("secondaryphone2",3,0)) || 
                (!checkLength("secondaryphone3",4,0)) || (!checkInteger("secondaryphone-extension",0)))
            {document.getElementById("divsecondaryphone").style.display="inline"; r=false;}
        else
            {document.getElementById("divsecondaryphone").style.display="none";}
       
        if ((document.getElementById("licensename").value=="") && (document.getElementById("licenseno").value!=""))
            {document.getElementById("licensename").style.border="solid 2px red"; r=false;}
        else
            {document.getElementById("licensename").style.cssText = "";}
            
        if ((document.getElementById("ca-id").value=="") && (document.getElementById("driverslicense").value==""))
            {document.getElementById("ca-id").style.border="solid 2px red"; 
                document.getElementById("driverslicense").style.border="solid 2px red"; 
                r=false;}
        else
            {document.getElementById("ca-id").style.cssText = "";
                document.getElementById("driverslicense").style.cssText = "";}
            
        if ((!validateCompare("email-confirm","email")) || 
            (!validateCompare("email-confirm2","email2")) || 
            (!validateCompare("email-confirm3","email3")))
            {document.getElementById("divemail-confirm").style.display="inline"; r=false;}
        else
            {document.getElementById("divemail-confirm").style.display="none";}

        checkControl("email");
        checkControl("email2");
        checkControl("email3");

        for (i=0;i<document.contact.licensed.length;i++) 
        { 
            if (document.contact.licensed[i].checked) 
            { 
                if ((document.contact.licensed[i].value=="Yes") && (document.getElementById("licenseno").value==""))
                    {document.getElementById("licenseno").style.border="solid 2px red"; r=false;}
                else
                    {document.getElementById("licenseno").style.cssText = "";} 
                    
                if ((document.contact.licensed[i].value=="Yes") && (document.getElementById("licensename").value==""))
                    {document.getElementById("licensename").style.border="solid 2px red"; r=false;}
                else
                    {document.getElementById("licensename").style.cssText = "";}
            }
        }
    }  
    
    if (p==2)
    {
        if (!checkLength("homezip",5,0))
            {document.getElementById("divhomezip").style.display="inline"; r=false;}
        else
            {document.getElementById("divhomezip").style.display="none";}

        checkControl("homezip");
            
        if ((document.getElementById("maximum-hours-desired").value*1) < (document.getElementById("minimum-hours-desired").value*1))
            {document.getElementById("divhours").style.display="inline"; r=false;}
        else
            {document.getElementById("divhours").style.display="none";}
            
        if ((document.getElementById("minimum-wage").value*1) > (document.getElementById("desired-wage").value*1))
            {document.getElementById("divwage").style.display="inline"; r=false;}
        else
            {document.getElementById("divwage").style.display="none";}
            
        var liv = document.contact.elements['live-in-work'];
        for (i=0;i<liv.length;i++) 
        {    
            if (liv[i].checked) 
            { 
                if ((liv[i].value=="Yes") && (document.getElementById("maximum-hours-desired").value < 45) && (document.getElementById("maximum-hours-desired").value !=""))
                    {document.getElementById("divlivin").style.display="inline"; r=false;}
                else
                    {document.getElementById("divlivin").style.display="none";} 
            }
        }         
            
        if (Sdirty == true)
            {document.getElementById("diverrslots").style.display="inline"; r=false;}
        else
            {document.getElementById("diverrslots").style.display="none";}
        
        for (i=0;i<document.contact.shortnotice.length;i++) 
        {    
            if (document.contact.shortnotice[i].checked) 
            { 
                if ((document.contact.shortnotice[i].value=="Yes") && (document.getElementById("notice-needed").value==""))
                    {document.getElementById("notice-needed").options[0].style.color="red"; r=false;}
                else
                    {document.getElementById("notice-needed").options[0].style.cssText = "";}
            }
        }
    }
    
    if (p==3)
    {
        if (!checkInteger("age",0))
            {document.getElementById("age").style.border="solid 2px red"; r=false;}
        else
            {document.getElementById("age").style.cssText = "";}
    }
    
    if (p==4)
    {
        if (!validateCompare("password-confirm","password"))
            {document.getElementById("divpassword-confirm").style.display="inline"; r=false;}
        else
            {document.getElementById("divpassword-confirm").style.display="none";}
    }
    
    
                    
    if (r == false)
    {
        return false;
    }
	return true;
}


function checkConfirm(p)
{
    var r=true;
    var t=false;
    var elem = document.getElementById("contact"+p).getElementsByTagName("*");
    for(var i = 0; i < elem.length; i++)
    {
      if (elem[i].name) 
      {
        if ((elem[i].id!="primaryphone-extension") && (elem[i].id!="secondaryphone") && (elem[i].id!="secondaryphone2") && (elem[i].id!="secondaryphone3") && 
        (elem[i].id!="secondaryphone-extension") && (elem[i].id!="ssn") && (elem[i].id!="ssn2") && (elem[i].id!="ssn3") &&
        (elem[i].name!="licenseno") && (elem[i].name!="licensename") && (elem[i].name!="age") &&
        (elem[i].name!="driverslicense") && (elem[i].name!="ca-id") && (elem[i].name!="education") &&
        (elem[i].id.indexOf("-read")<0) && (elem[i].id.indexOf("-write")<0) && (elem[i].id.indexOf("certifications")<0) &&
        (elem[i].name!="reference1") && (elem[i].name!="reference2") && (elem[i].name!="reference3")
        )
        {
            if (elem[i].type=="text")
            {
                if (elem[i].value=="")
                    {document.getElementById(elem[i].id).style.border="solid 2px red"; r=false;}
                else
                    {document.getElementById(elem[i].id).style.cssText = "";}
            }
        }        
      }
    }
    
    if (p==1)
    {
        if ((!checkLength("primaryphone",3,1)) || (!checkLength("primaryphone2",3,1)) || 
                (!checkLength("primaryphone3",4,1)) || (!checkInteger("primaryphone-extension",0)))
            {r=false;}
        
        if ((!checkLength("secondaryphone",3,0)) || (!checkLength("secondaryphone2",3,0)) || 
                (!checkLength("secondaryphone3",4,0)) || (!checkInteger("secondaryphone-extension",0)))
            {r=false;}
            
        if ((document.getElementById("licensename").value=="") && (document.getElementById("licenseno").value!=""))
            {document.getElementById("licensename").style.border="solid 2px red"; r=false;}
        else
            {document.getElementById("licensename").style.cssText = "";}
            
        if ((document.getElementById("ca-id").value=="") && (document.getElementById("driverslicense").value==""))
            {document.getElementById("ca-id").style.border="solid 2px red"; r=false;}
        else
            {document.getElementById("ca-id").style.cssText = "";}
    }  
    
    if (p==2)
    {
        if (!checkLength("homezip",5,1))
            {r=false;}
    }
    
    if (p==3)
    {
        if (!checkInteger("age",0))
            {document.getElementById("age").style.border="solid 2px red"; r=false;}
        else
            {document.getElementById("age").style.cssText = "";}
    }
                    
    if (r == false)
    {
        return false;
    }
	return true;
}


function writeHour(n,s)
{
    var str;
    str = "<select id='SelectHour"+n+s+"' name='SelectHour"+n+s+"' onchange='checkIfOK("+s+");' class='main-content'><option value=''>--</option>";
    str = str + "<option value='01'>01</option><option value='02'>02</option>";
    str = str + "<option value='03'>03</option><option value='04'>04</option>";
    str = str + "<option value='05'>05</option><option value='06'>06</option>";
    str = str + "<option value='07'>07</option><option value='08'>08</option>";
    str = str + "<option value='09'>09</option><option value='10'>10</option>";
    str = str + "<option value='11'>11</option><option value='12'>12</option>";
    str = str + "</select>";
    return str;
}


function writeMinute(n,s)
{
    var str;
    str = "<select id='SelectMinute"+n+s+"' name='SelectMinute"+n+s+"' onchange='checkIfOK("+s+");' class='main-content'><option value=''>--</option>";
    str = str + "<option value='00'>00</option><option value='15'>15</option>";
    str = str + "<option value='30'>30</option><option value='45'>45</option>";
    str = str + "</select>";
    return str;
}


function writeAMPM(n,s)
{
    var str;
    str = "<select id='SelectAMPM"+n+s+"' name='SelectAMPM"+n+s+"' onchange='checkIfOK("+s+");' class='main-content'><option value=''>--</option>";
    str = str + "<option value='AM'>AM</option><option value='PM'>PM</option>";
    str = str + "</select>";
    return str;
}


function writeDays(s)
{
    var str;
    str = "<select id='SelectDays"+s+"' name='SelectDays"+s+"' onchange='checkIfOK("+s+");' class='main-content'><option value=''>Select</option>";
    str = str + "<option value='All Days'>All Days</option><option value='Mon.- Fri.'>Mon. - Fri.</option>";
    str = str + "<option value='Sat.'>Sat.</option><option value='Sun.'>Sun.</option>";
    str = str + "</select>";
    return str;
}

function writeDaysDiv(s) 
{
    var str;
    str = "<div id='SelectMDays" + s + "' name='SelectMDays" + s + "' class='main-content' onmouseleave='this.style.display=\"none\";' ";
    str = str + "style='position: absolute; display:none; border: solid 1px black; background-color: white'>";
    str = str + "<input id='chk" + s + "_1' name='chk" + s + "' value='1' type='checkbox'/>Sunday<br/>";
    str = str + "<input id='chk" + s + "_2' name='chk" + s + "' value='2' type='checkbox'/>Monday<br/>";
    str = str + "<input id='chk" + s + "_3' name='chk" + s + "' value='3' type='checkbox'/>Tuesday<br/>";
    str = str + "<input id='chk" + s + "_4' name='chk" + s + "' value='4' type='checkbox'/>Wednesday<br/>";
    str = str + "<input id='chk" + s + "_5' name='chk" + s + "' value='5' type='checkbox'/>Thursday<br/>";
    str = str + "<input id='chk" + s + "_6' name='chk" + s + "' value='6' type='checkbox'/>Friday<br/>";
    str = str + "<input id='chk" + s + "_7' name='chk" + s + "' value='7' type='checkbox'/>Saturday";
    str = str + "</div>";
    return str;
}


var inact;
var Sdirty = false;
function checkIfOK(n)
{
    var r = false;
    rdo = document.contact.elements["chk" + n];
    for (j = 0; j < rdo.length; j++) {
        if (rdo[j].checked == true)
        {r = true;}
    }
    if ((document.getElementById("SelectHour1"+n).value != "") && (document.getElementById("SelectMinute1"+n).value != "")
    && (document.getElementById("SelectAMPM1"+n).value != "") && (document.getElementById("SelectHour2"+n).value != "")
    && (document.getElementById("SelectMinute2"+n).value != "") && (document.getElementById("SelectAMPM2"+n).value != "")
    //&& (document.getElementById("SelectDays"+n).value != ""))
    && (r==true))
    {
      var v = validateTime(n); 
      if (v==true) {Sdirty = true;}
      else {Sdirty = false;}
    }
}


function validateTime(n)
{
    var hour1;
    hour1 = document.getElementById("SelectHour1"+n).value;
    if (hour1!="10") {hour1 = hour1.replace("0","");};
    if (hour1=="12") {hour1 = hour1.replace("12","00");};
    if (document.getElementById("SelectAMPM1"+n).value == "PM"){hour1 = parseInt(hour1) + 12;};
    var startTime;
    startTime = hour1+":"+document.getElementById("SelectMinute1"+n).value+":00";     
    
    var hour2;
    hour2 = document.getElementById("SelectHour2"+n).value;
    if (hour2!="10") {hour2 = hour2.replace("0","");};
    if (hour2=="12") {hour2 = hour2.replace("12","00");};
    if (document.getElementById("SelectAMPM2"+n).value == "PM"){hour2 = parseInt(hour2) + 12;};
    var endTime;
    endTime = hour2+":"+document.getElementById("SelectMinute2"+n).value+":00";
    var a = Date.parse("Thu, 01 Jan 1970 "+startTime+" GMT");  
    var b = Date.parse("Thu, 01 Jan 1970 "+endTime+" GMT");
    if (b==0) {b=86399000};
    if (a <= b)
        {return false;}
    else
        {return true;}
}   

function addRow()
{
    var sloti = document.getElementById('slot');
    var slot = (document.getElementById('slot').value -1)+ 2;
    sloti.value = slot;
    
    var newrow = document.createElement('div');
    var rowIdName = 'slot'+slot;
    
    var str = "";
    
    var start = "divStart"+slot;
    var end = "divEnd"+slot;
    var days = "divDays"+slot;
    var btnDelete = "btnDelete"+slot
    var btnDays = "btnDays"+slot
    
    str = str + "<table><tr>";
    str = str + "<td><div id='"+start+"' style='width:130px'>"+writeHour(1,slot)+":"+writeMinute(1,slot)+writeAMPM(1,slot)+"</div></td>";  
    str = str + "<td style='width:10px'>- </td>";
    str = str + "<td><div id='"+end+"' style='width:140px'>"+writeHour(2,slot)+":"+writeMinute(2,slot)+writeAMPM(2,slot)+"</div></td>";   
    str = str + "<td><input id='"+btnDays+"' type='button' value='Days' onclick='showDiv("+slot+");'/>"+writeDaysDiv(slot)+"</td>";  
    str = str + "<td><img id='"+btnDelete+"' alt='Delete this slot' src='images/delete.gif' style='cursor:hand' onclick='deleteRow(\""+rowIdName+"\");'></img></td>";
    str = str + "</tr></table>";
    
    newrow.setAttribute('id',rowIdName);
    newrow.innerHTML = str; 
    document.getElementById('divslots').appendChild(newrow);
}

function showDiv(s)
{
    document.getElementById("SelectMDays"+s).style.display="block";
}

function deleteRow(divNum) 
{
    if (divNum!="slot1")
    {
        var olddiv = document.getElementById(divNum);
        document.getElementById('divslots').removeChild(olddiv);
    }
}

function getSlots()
{
    if (document.getElementById('divslots')){
    var oRows = document.getElementById('divslots').getElementsByTagName('table');
    var str = "";
    for(var i=0; i<oRows.length; i++)
    {
        var n = i+1;
        str = str + document.getElementById("SelectHour1"+n).value + ":";
        str = str + document.getElementById("SelectMinute1"+n).value + " ";
        str = str + document.getElementById("SelectAMPM1"+n).value + "&";
        str = str + document.getElementById("SelectHour2"+n).value + ":";
        str = str + document.getElementById("SelectMinute2"+n).value + " ";
        str = str + document.getElementById("SelectAMPM2"+n).value + "&";
        rdo = document.contact.elements["chk"+n];
        for (j=0;j<rdo.length;j++)
        {
            if (rdo[j].checked==true)
            {str = str + rdo[j].value;}
        }
        str = str + ";";
    }
    str = str.substring(0, str.length - 1);
    document.getElementById("hdnSlots").value = str;}
}

var dirty = false;
function editsave(p)
{
    var elem = document.getElementById("contact"+p).getElementsByTagName("*");
    if (document.getElementById("btnEditContent"+p).innerHTML=="EDIT")
    {
        for(var i = 0; i < elem.length; i++)
        {
            if (elem[i].name) 
            {
                document.getElementById(elem[i].id).disabled=false;
            }
        }
        document.getElementById("btnEditContent"+p).innerHTML = "SAVE"; dirty = true; return false;
    }
    if (document.getElementById("btnEditContent"+p).innerHTML=="SAVE")
    {
        if (checkConfirm(p))
        {
            for(var i = 0; i < elem.length; i++)
            {
                if (elem[i].name) 
                {
                    document.getElementById(elem[i].id).disabled=true;
                }
            }
            document.getElementById("btnEditContent"+p).innerHTML = "EDIT"; dirty = false; return false;
        }
        else
            {return false;}
    }
}