// JavaScript Document
function ToUpper(strField)
{
   strField.value = strField.value.toUpperCase();
} 

function CountDupChar(strArg, strChar)
{
    var intI
    var lngCount
    
    if(strArg.length == 0)
        return 0;
    
    for(intI=0; intI<strArg.length; ++intI)
    {
        if(strArg.CharAt[intI] == strChar)
            lngCount++;
    }
    return lngCount;
}

function ValidateForm(strFormName)
{
// Check for field names ending with * and if they're empty
// Check that one of Telephone/E-mail is completed
// Check that e-mail address is valid
// Check that the combo box has been selected (not first option)
// Check for tick boxes, and if any are ticked if Telephone chosen in combo box
    var intCount = 0;
    
	if(CheckCompulsoryFields(strFormName) == false)
        return false;
        
/*    if(document.forms[strFormName].elements["Telephone"].value.length > 0)
        intCount++;
    if(document.forms[strFormName].elements["email"].value.length > 0)
        intCount++;
    if(intCount == 0)
    {
        alert("Please complete one or both of the Telephone and E-mail fields");
        return false;
    }
*/
    
    if(ValidateEmail(strFormName) == false)
        return false;	
    
/*    if(document.forms[strFormName].elements["Preferred Contact Method"].selectedIndex == 0)
   {
        alert('Please select an option from the Preferred contact method drop-down box');
        return false;
    }
*/
    if(CountCheckedboxes(strFormName) == false)
        return false;

    return true;
}

function CheckCompulsoryFields(strFormName)
{
    var oForm = document.forms[strFormName];
    var strName;
    var intI;

    for(intI=0; intI<oForm.elements.length; intI++)
    {
        strName = oForm.elements[intI].name;
        
        if((oForm.elements[intI].className == "Required") &&
          (oForm.elements[strName].value.length == 0))
        {
            if(strName == "realname")
                strName = "Name";
            if(strName == "email")
                strName = "E-mail";
            alert("'" + strName + "' field cannot be blank");
            return false;
        }
    }
}

function EnableTickBoxFromDropdownBox(strFormName, strFieldName)
{
// Used for Contact when Check Box, from Preferred Contact Method (cboContactMethod).
// If Telephone option is selected, enable all four check boxes.
    var oForm;
    var intI;
    
    oForm = document.forms[strFormName];
    intI = oForm.elements["Preferred Contact Method"].selectedIndex;
 
    if(oForm.elements["Preferred Contact Method"].options[intI].text == 'Telephone')
    {
        oForm.elements["Anytime"].disabled = false;
        oForm.elements["OfficeHours"].disabled = false;
        oForm.elements["Evenings"].disabled = false;
        oForm.elements["Weekends"].disabled = false;
    }
    else
    {
        oForm.elements["Anytime"].checked = false;
        oForm.elements["Anytime"].disabled = true;
        oForm.elements["OfficeHours"].checked = false;
        oForm.elements["OfficeHours"].disabled = true;
        oForm.elements["Evenings"].checked = false;
        oForm.elements["Evenings"].disabled = true;
        oForm.elements["Weekends"].checked = false;
        oForm.elements["Weekends"].disabled = true;
    }
}

function AssembleContactOptions(strFormName)
{
    var strOptions = [];
    var intI;
    var intJ = 1; 

    document.forms[strFormName].elements["Preferred Contact Method"].options.length = 0;

    strOptions[0] = new Option("[SELECT]");

    if(document.forms[strFormName].elements["email"].value.length > 0)
    {
        strOptions[intJ] = new Option("E-mail");
        intJ++;
    }  
    if(document.forms[strFormName].elements["Telephone"].value.length > 0)
    {
        strOptions[intJ] = new Option("Telephone");
        intJ++;
    }
    for(intI=0; intI<intJ; intI++)
        document.forms[strFormName].elements["Preferred Contact Method"].options[intI] = 
          strOptions[intI];
}

function CountCheckedboxes(strFormName)
{
    var oForm = document.forms[strFormName];
    var strNamePrefix;
    var lngCount = 0;
    var lngChecked = 0;
    var intI; 

    for(intI=0; intI<oForm.elements.length; intI++)
    {
        if(oForm.elements[intI].type == "checkbox")
        {
            lngCount++;
            if(oForm.elements[intI].checked == true)
                lngChecked++;
        }
    }       

    if(lngCount > 0 && lngChecked == 0)
    {
        alert("Please select at least one of the contact when tick boxes");
        return false;
    }
    
    return true;
}


function ValidateEmail(strFormName)
{
    var strEmailAddress = document.forms[strFormName].elements["email"].value;
    var strInvalidChars = '\/\'\\ ";:?!()[]\{\}^|';
    var lngAtPos = strEmailAddress.indexOf('@',0);
	var lngDotPos = strEmailAddress.indexOf('.',0);
	var lngLength = strEmailAddress.length - 1;

    if (strEmailAddress == '')
    {
        return true;
    }
    
    for (intI=0; intI<strInvalidChars.length; intI++)
    {
        if (strEmailAddress.indexOf(strInvalidChars.charAt(intI),0) > -1)
        {
            alert('E-mail address contains an invalid character');
            return false;
        }
    }
    for (intI=0; intI<strEmailAddress.length; intI++)
    {
        if (strEmailAddress.charCodeAt(intI)>127)
        {
            alert('E-mail address contains an invalid (non-ASCII) character');
            return false;
        }
    }

    if (lngAtPos == -1)
    {
        alert('E-mail address must contain an "@"');
        return false;
    }
    if (lngAtPos == 0)
    {
       alert('E-mail address must not start with "@"');
       return false;
    }
    if (lngAtPos == lngLength)
    {
       alert('E-mail address must not end with "@"');
       return false;
    }
    if (strEmailAddress.indexOf('@', lngAtPos + 1) > - 1)
    {
       alert('E-mail address must contain only one "@"');
       return false;
    }
    if (lngDotPos == 0)
    {
       alert('E-mail address must not start with "."');
       return false;
    }
    if (lngDotPos == lngLength)
    {
       alert('E-mail address must not end with "."');
       return false;
    }
    if (lngDotPos == -1)
    {
       alert('E-mail address must contain a "."');
       return false;
    }
    if (strEmailAddress.indexOf('@.',0) != -1)
    {
       alert('"." must not immediately follow "@" in e-mail address');
       return false;
    }
    if (strEmailAddress.indexOf('.@',0) != -1)
    {
       alert('"." must not immediately precede "@" in e-mail address');
       return false;
    }
    if (strEmailAddress.indexOf('..',0) != -1)
    {
       alert('Two ".." must not be adjacent in e-mail address');
       return false;
    }

    return true;
}

function CloseWindowGeneric()
{
    window.open('', '_self', ''); 
    window.close();
}

function WriteJJJLogo()
{
    var strReturn;

    strReturn = "<span style='color: #00ff00;'>J" +  //Green
                "<span style='color: #ff00ff;'>u" +  //Magenta or Fuschia
                "<span style='color: #0000ff;'>m" +  //Blue
                "<span style='color: #00ffff;'>p" +  //Cyan or Aqua
                "<span style='color: #ffff00;'>y " + //Yellow
                "<span style='color: #ff00ff;'>J" +  //Magenta or Fuschia 
                "<span style='color: #0000ff;'>u" +  //Blue 
                "<span style='color: #ff0000;'>m" +  //Red
                "<span style='color: #00ff00;'>p " + //Green
                "<span style='color: #0000ff;'>J" +  //Blue
                "<span style='color: #ffff00;'>u" +  //Yellow
                "<span style='color: #00ff00;'>m" +  //Green
                "<span style='color: #ff0000;'>p" +  //Red
                "<br>";
    
    document.write(strReturn);
}

function WriteHead()
{
    var strReturn;

    strReturn = 
        "<img class='logo_ch' src='images/cleanhomeslogo.jpg' /> " +
        "<p class='Heading'> " +
        "Clean Homes Ltd " +
        "<p class='Address'> " +
        "76, Envis Way, Guildford, Surrey GU3 3NJ<br> " + 
        "Call Lesley on 01483 233625<br> " +
        "<a class='AddressLinks' href='mailto:lesley@cleanhomesguildfordltd.co.uk'> " +
        "E-mail: lesley@cleanhomesguildfordltd.co.uk</a>"; 
    
    document.write(strReturn);
}

function WriteMenu(lngWhich)
{
    var strReturn;
    
    strReturn = 
            "<ul class='menu'> " +
                "<li> " +
                    "<a href='index.html' title='Show Home page'"
                    if(lngWhich == 1)
                        strReturn = strReturn + " class='active'"
                    strReturn = strReturn + "> " +
                      "<span>Home</span>" +
                    "</a>" +
                "</li> " +

                "<li> " +
                    "<a href='areacovered.html' " + 
                      "title='Show Areas covered page'"
                    if(lngWhich == 2)
                        strReturn = strReturn + " class='active'"
                    strReturn = strReturn + "> " +  
                      "<span>Areas covered</span> " +
                    "</a> " +
                "</li> " +
                
                "<li> " +
                    "<a href='contract.html' title='Show Our Contract page'"
                    if(lngWhich == 3)
                        strReturn = strReturn + " class='active'"
                    strReturn = strReturn + "> " +  
                      "<span>Our Contract</span> " +
                    "</a> " +
                "</li> " +

                "<li> " +
                    "<a href='contact.html' title='Show Contact us page'"
                    if(lngWhich == 4)
                        strReturn = strReturn + " class='active'"
                    strReturn = strReturn + "> " +  
                      "<span>Contact us</span> " +
                    "</a> " +
                "</li> " +
            "</ul>";

    document.write(strReturn);
}

function WriteFootAddress()
{
    var strReturn;
    
    strReturn = 
        "<HR class='Purple'> " +
        "<p class='Foot'> " +
        "76 Envis Way, Guildford, Surrey, GU3 3NJ. Tel: 01483 233625 " +
        "</p> " +
        "<HR class='Purple'>";

    document.write(strReturn);
}
