
if (document.images) {
  image1on = new Image();
  image1on.src = "images/signup2.gif";
  image1off = new Image();
  image1off.src = "images/signup.gif";
}
function turnOn(imageName) {
  if (document.images) {
    document[imageName].src =
      eval(imageName + 'on.src');
  }
}
function turnOff(imageName) {
  if (document.images) {
    document[imageName].src =
      eval(imageName + 'off.src');
  }
}

function setUpperCase(field){
    var str = field.value.toUpperCase();
    field.value = str;
}

//--------------------------------------------------------------------

function validateCGIPlan(form){

    //hosting_plan
    //CGI_Access

    var planIndex = form.elements['hosting_plan'].selectedIndex;
    var Plan = form.elements['hosting_plan'].options[planIndex].value;

    var cgiIndex = form.elements['cgi_access'].selectedIndex;
    var useCgi = form.elements['cgi_access'].options[cgiIndex].value;

    if(useCgi == "Yes" && Plan == "basic"){
        alert("The basic hosting plan does not include cgi-bin access.\n\n" +
              "Please select a different hosting plan or select 'No' for cgi-bin access.");
        form.elements['cgi_access'].options[1].selected = true;
        form.elements['hosting_plan'].focus();
        return false;
    }

return true;
}

//--------------------------------------------------------------------
function turnOffCgi(form){

    var planIndex = form.elements['hosting_plan'].selectedIndex;
    var Plan = form.elements['hosting_plan'].options[planIndex].value;

    if(Plan == "basic"){
        form.elements['cgi_access'].options[1].selected = true;
    }
    else{
        form.elements['cgi_access'].options[0].selected = true;
    }

}


// -------------------------------------------------------------------
function validatedomainFields(form){


    if(!validateCGIPlan(form)){
        return false;
    }

     // Setup an array of the required
     // form field names to validate:

 var domainFields = new Array("domainname,Domain Name",
                              "domainstatus,Domain Status",
                              "registerdomain,Register Domain");

     // Loop through the form fields and
     // test each of the required fields

    for(j = 0; j < form.elements.length; j++){

        var fName = form.elements[j].name;
        var fType = form.elements[j].type;
        //alert(fName + "," + fType);

        var rLabel = "";

        for(var i = 0;i < domainFields.length; i++){
            var rFields = domainFields[i].split(",");
            var rName = rFields[0];
            if(rName == fName){
                rLabel = rFields[1];
                break;
            }
        }

        if(fType == "text" && rLabel != ""){
            var requiredField = form.elements[j].value;
            if(requiredField == ""){
               alert("You forgot to fill in the \"" + rLabel + "\" field.\n" +
                     "This field is required before processing your hosting order.");
               form.elements[j].focus();
               return false;
            }
        }

        if(fType == "radio" && rLabel != ""){
            var found_it = false;
            for (var k=0; k < form.elements[fName].length; k++)  {
                if(form.elements[fName][k].checked){
                    found_it = true;
                    break;
                }
            }
            if(!found_it){
                alert("You forgot to select an option from the \"" + rLabel + "\" field.\n\n" +
                      "This field is required before processing your hosting order.");
                form.elements[j].focus();
                return false;
            }
        }
    }

    if(!validatePlanFields(form)){
        return false;
    }


return true;
}



// -------------------------------------------------------------------
function validatePlanFields(form){

    if(form.elements['username'].value == ""){
        alert("You forgot to enter a username.\n\n" +
              "This field is required before processing your hosting order.");
        form.elements['username'].focus();
        return false;
    }

    if(form.elements['password'].value == ""){
        alert("You forgot to enter a password.\n\n" +
              "This field is required before processing your hosting order.");
        form.elements['password'].focus();
        return false;
    }
    if(form.elements['passwordcheck'].value == ""){
        alert("You forgot to re-enter your password.\n\n" +
              "This field is required before processing your hosting order.");
        form.elements['passwordcheck'].focus();
        return false;
    }
    if(form.elements['password'].value != form.elements['passwordcheck'].value){
        alert("Your password and the re-entered password do not match.\n\n" +
              "Please try again...");
        form.elements['password'].focus();
        return false;
    }

return true;
}


// -------------------------------------------------------------------
function validateBillingFields(form){

    // Setup an array of the required field names to use:

 var requiredFields = new Array("customer_name,Name",
                                "address,Street Address",
                                "city,City",
                                "state,State/Province",
                                "postal_code,Postal Code",
                                "country,Country",
                                "phone_number,Phone Number",
                                "email,Email Address",
                                "card_number,Credit Card Number",
		                        "cvv2,Card Verification Number");

    for(i = 0; i < form.elements.length -1; i++){

        // First check the required fields

        for(j = 0; j < requiredFields.length; j++){

            var rFields = requiredFields[j].split(",");
            var rName = rFields[0];
            var rLabel = rFields[1];

            if((form.elements[i].name == rName)&&(form.elements[i].value == "")){
                var gotoField = form.elements[i];
                alert("You forgot to fill in the \"" + rLabel + "\" field.\n" +
                      "This field is required before processing your order.");
                gotoField.focus();
                return false;
            }
        }
    } // End foreach element


	if(!emailCheck(form.email.value)){
		alert("Please enter a valid email address");
		form.email.focus();
		return false;
	}


    if(!checkCard(form)){
        return false;
    }
    if(!checkExpireDate(form)){
        return false;
    }
        // AcceptPolicies

    if(!form.accept_policies.checked){
        alert("You did not check \"yes\" to Accepting our Policies?" + "\n\n" +
            "This is required before processing your order.");
        form.accept_policies.focus();
		return false;
    }


return true;
}

// -------------------------------------------------------------------
function isCreditCard(st) {
          // Encoding only works on cards
          // with less than 19 digits
     if (st.length > 19)
          return (false);
     sum = 0; mul = 1; l = st.length;
     for (i = 0; i < l; i++) {
          digit = st.substring(l-i-1,l-i);
          tproduct = parseInt(digit ,10)*mul;
          if (tproduct >= 10)
               sum += (tproduct % 10) + 1;
          else
               sum += tproduct;
          if (mul == 1)
               mul++;
          else
               mul--;
     }
     if ((sum % 10) == 0)
          return (true);
     else
          return (false);
}

// -------------------------------------------------------------------
function strip(val) {
val = "" + val;
     if (!val)
          return "";
     var result = "";
     for (i=0; i < val.length; i++) {
          character = val.charAt(i);
          if ("0123456789".indexOf(character) != -1)
          result += character;
     }
return result;
}

// -------------------------------------------------------------------
function checkCard(form){

    var cardField = form.elements['card_number'];
    var entry = form.elements['card_number'].value;
    if(entry == ""){
        alert('You did not enter a valid credit card number\n' +
                'Please check your entry and try again.');
        cardField.focus();
        return false;
    }
    var strippedEntry = strip(entry);
    if((!isCreditCard(strippedEntry))||(strippedEntry.length == 0)){
        alert('The credit card number you entered could not be validated.\n' +
              'Please check the number and try again.');
        cardField.focus();
        return false;
    }
    else{
        return true;
    }


return true;
}

// -------------------------------------------------------------------
function checkExpireDate(form) {

        // Get the field value

    var monthIndex = form.elements['expire_month'].selectedIndex;
    var expireMonth = parseInt(form.elements['expire_month'].options[monthIndex].value - 1);

    var yearIndex = form.elements['expire_year'].selectedIndex;
    var expireYear = "20" + form.elements['expire_year'].options[yearIndex].value;

        // make sure the date is in the future

    var today = new Date();
    var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var expireDay = monthDays[expireMonth];
    var expire = new Date(expireYear,expireMonth,expireDay);

        // Alert if not valid

    if(expire < today){
        alert("The expiration date you selected is invalid.\n\n" +
              "Please select a valid expiration date for the credit card.");
        form.elements['expire_month'].focus();
        return false;
    }

return true;
}


// -------------------------------------------------------------------
function emailCheck(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;
}


function jumpTo(page){
    document.location = page;
}
