﻿// JScript File
function callback(res)
{   
    processAjaxResponse(res.value);
}

function DealerSearchKeyDown(event)
{
key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (key == 13) 
{
    ZipSearch();
    return false;
}
}

function ZipSearch()
{   
    var o = document.getElementById('zipCode');
    
    if (!isValidZipCode(o.value))
    {
        alert("Please enter your 5 digit or 5 digit+4 zip code.");
        SelectAll('zipCode');
        return false;
    }

    var x=GetFormData(0);
    AJAX.API.AjaxEvent(isBluebox(), 'Dealers', 'ZipSearch', x, null, callback);
}

function SelectAll(id)
{
document.getElementById(id).focus();
document.getElementById(id).select();
}

function ShowProdDiv(ProdDiv)
{
    HideAllProdDivs();
    setVis(ProdDiv, true);
}

function HideAllProdDivs()
{
    setVis('divProdDescription', false);
    setVis('divProdPricing', false);
    setVis('divProdMaintenance', false);
    setVis('divProdWarranty', false);
}

function ShowAccDiv(AccDiv)
{
    HideAllAccDivs();
    setVis(AccDiv, true);
}

function HideAllAccDivs()
{
    setVis('divAccDescription', false);
    setVis('divAccSpecs', false);
    setVis('divAccPackages', false);
}

function setVis(id, vis, displayNone) {
    if (id != '') {
        if (displayNone == undefined || (displayNone != true && displayNone != false)) {
            displayNone = true;
        }
	    obj = MM_findObj(id);
	    if (obj == undefined) {
	        return;
	    }
	    if(document.getElementById || document.all){//all the modern browsers
		    obj.style.visibility = vis ? "visible" : "hidden";
		    if (displayNone) {
		        obj.style.display = vis ? "block" : "none";
		    }
	    }
	    else if(document.layers){//this is NS4
		    obj.visibility = vis ? "show" : "hide";
		    if (displayNone) {
    		    obj.display = vis ? "block" : "hide";
            }
	    }  
	}
}

function isValidZipCode(value) {
   var re = /^\d{5}([\-]\d{4})?$/;
   return (re.test(value));
}


function NewsSortChange(id)
{
    addXml = "<root><v id=\"CategoryID\">" + id.value + "</v></root>";
    AJAX.API.AjaxEvent(isBluebox(), 'NewsAndEvents', 'CategorySortChange', null, addXml, callback);    
}

function FilterProducts()
{
    //get the 4 ddl's and their text and values
    var ddl1 = document.getElementById("topLeftDDLName").value;
    var ddl2 = document.getElementById("topRightDDLName").value;
    var ddl3 = document.getElementById("bottomLeftDDLName").value;
    var ddl4 = document.getElementById("bottomRightDDLName").value;
    var itemName = document.getElementById("ItemName").value;

    var addXml = "<root>";
    
    if (document.getElementById(ddl1))
    {
    addXml = addXml + "<v id=\"Value1\">" + document.getElementById(ddl1).value + "</v>";
    }

    if (document.getElementById(ddl2))
    {
    addXml = addXml + "<v id=\"Value2\">" + document.getElementById(ddl2).value + "</v>";
    }

    if (document.getElementById(ddl3))
    {
    addXml = addXml + "<v id=\"Value3\">" + document.getElementById(ddl3).value + "</v>";
    }

    if (document.getElementById(ddl4))
    {
    addXml = addXml + "<v id=\"Value4\">" + document.getElementById(ddl4).value + "</v>";
    }

    addXml = addXml + "</root>";

    var x="<root><v id=\"CategoryName\">" + itemName + "</v></root>";
    AJAX.API.AjaxEvent(isBluebox(), 'Category', 'ProductFilterChange', x, addXml, callback);
}

function filterProductsByPdtLine(total,count,lineID){
    //alert(total + ", " + count + ", " + ref);
        for (i=2; i < total; i++){
            document.getElementById(i).style.display = 'none';
        }
        if (lineID == "0"){
            document.getElementById("defaultImage").style.display = 'block';
        }else{
            document.getElementById(count).style.display = 'block';
            document.getElementById("defaultImage").style.display = 'none';
        }

    var itemName = document.getElementById("ItemName").value;

    var addXml = "<root>";
    addXml = addXml + "<v id=\"Value1\">" + lineID + "</v>";
    addXml = addXml + "</root>";

    var x="<root><v id=\"CategoryName\">" + itemName + "</v></root>";
    AJAX.API.AjaxEvent(isBluebox(), 'Category', 'ProductLineFilterChange', x, addXml, callback);

}

function switchUnits(ref){
    if (ref == "US"){
        document.getElementById('metric').style.display = 'none';
        document.getElementById('imgMetric').src = 'Resources/Images/unitsMetric.gif';
        document.getElementById('US').style.display = 'block';
        document.getElementById('imgUS').src = 'Resources/Images/unitsUS_on.gif';
    }else{
        document.getElementById('US').style.display = 'none';
        document.getElementById('imgUS').src = 'Resources/Images/unitsUS.gif';
        document.getElementById('metric').style.display = 'block';
        document.getElementById('imgMetric').src = 'Resources/Images/unitsMetric_on.gif';
    }
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') 
    window.onload = func;
  else 
  {
    window.onload = function() 
    {
      if (oldonload) 
        oldonload();
      func();
    }
  }
}

function SwapDDL(off)
{
    if (off == 'dealer')
    {
        document.getElementById('divDealer').style.display = 'block';
        document.getElementById('divShops').style.display = 'none';        
    }
    else
    {
        document.getElementById('divDealer').style.display = 'none';
        document.getElementById('divShops').style.display = 'block';
    }
}

function SubmitForm(formName,strAttribute)
{
    var msg = "";
    var formID = "";
    // make sure all required fields have been filled in
    if (formName == "pdtRequest"){
        formID = "Product Information Request";
        if (document.getElementById('pdtRequest_Name').value == ""){msg += "-- Name\n";}
        if (document.getElementById('pdtRequest_Organization').value == ""){msg += "-- Organization\n";}
        if (document.getElementById('pdtRequest_Address').value == ""){msg += "-- Address\n";}
        if (document.getElementById('pdtRequest_City').value == ""){msg += "-- City\n";}
        if (document.getElementById('pdtRequest_ZIP').value == ""){msg += "-- ZIP/Postal Code\n";}
        if (document.getElementById('pdtRequest_Country').value == ""){msg += "-- Country\n";}
        if (document.getElementById('pdtRequest_Phone').value == ""){msg += "-- Telephone #\n";}
        if (document.getElementById('pdtRequest_Fax').value == ""){msg += "-- Fax #\n";}
        //if (document.getElementById('pdtRequest_State').value == ""){msg += "-- State\n";}
        //if (isValidZipCode(document.getElementById('pdtRequest_ZIP').value) == false){msg += "-- ZIP/Postal Code\n";}
        //if (ValidatePhone(document.getElementById('pdtRequest_Phone')) == false){msg += "-- Telephone #\n";}
        //if (ValidatePhone(document.getElementById('pdtRequest_Fax')) == false){msg += "-- Fax #\n";}
        if (ValidateEmail(document.getElementById('pdtRequest_Email')) == false){msg += "-- E-mail Address\n";}
    }else if (formName == "svcRequest"){
        formID = "Customer Service Request";
        if (document.getElementById('svcRequest_Company').value == ""){msg += "-- Company\n";}
        if (document.getElementById('svcRequest_Name').value == ""){msg += "-- Name\n";}
        if (ValidateEmail(document.getElementById('svcRequest_Email')) == false){msg += "-- E-mail Address\n";}
        if (document.getElementById('svcRequest_Serial').value == ""){msg += "-- Machine Serial #\n";}
        if (document.getElementById('svcRequest_Description').value == ""){msg += "-- Brief Description\n";}
    }else if (formName == "partsInquiry"){
        formID = "Parts Department Inquiry";
        if (document.getElementById('partsInquiry_Company').value == ""){msg += "-- Company\n";}
        if (document.getElementById('partsInquiry_Name').value == ""){msg += "-- Name\n";}
        if (ValidateEmail(document.getElementById('partsInquiry_Email')) == false){msg += "-- E-mail Address\n";}
        if (document.getElementById('partsInquiry_Serial').value == ""){msg += "-- Machine Serial #\n";}
        if (document.getElementById('partsInquiry_Description').value == ""){msg += "-- Brief Description\n";}
    }else if (formName == "quoteRequest_Request") {
        formID = "Quote Request";
        if (document.getElementById('quoteRequest_Request_Name').value == ""){msg += "-- Name\n";}
        if (document.getElementById('quoteRequest_Request_Organization').value == ""){msg += "-- Organization\n";}
        if (document.getElementById('quoteRequest_Request_Address').value == ""){msg += "-- Address\n";}
        if (document.getElementById('quoteRequest_Request_City').value == ""){msg += "-- City\n";}
        if (document.getElementById('quoteRequest_Request_ZIP').value == ""){msg += "-- ZIP/Postal Code\n";}
        if (document.getElementById('quoteRequest_Request_Country').value == ""){msg += "-- Country\n";}
        if (document.getElementById('quoteRequest_Request_Phone').value == ""){msg += "-- Telephone #\n";}
        if (document.getElementById('quoteRequest_Request_Fax').value == ""){msg += "-- Fax #\n";}
        if (ValidateEmail(document.getElementById('quoteRequest_Request_Email')) == false){msg += "-- E-mail Address\n";}		
    }
    else
    {
		msg = "Error";
    }

    if (msg != ""){
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        
    }else{
        changeForm("Confirmation");
        var x = getCustSvcFormElementsXML(strAttribute, formName);
        AJAX.API.FormSave(formID, x, Process_SubmitForm);    
    }

    
}

function Process_SubmitForm(res){
    if (res.error){
        alert("An error occurred.\nYour inquiry could not be processed.")
    }
}

function getCustSvcFormElementsXML(strAttributeName, strAttributeValue){
    var arrElements = document.body;
    if (!arrElements.all)	
    {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else
    {
       arrElements = arrElements.all;
    }
	
    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn='';
	
    var aReturn =new Array();
    aReturn.push('<root>');
    //aReturn.push('<form>');
	
    for(var i=0; i<arrElements.length; i++){
	    oCurrent = arrElements[i];
	    oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
	    
	    if(typeof oAttribute == "string" && oAttribute.length > 0){
		    
		    
		    
		    if(typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))){
		        if(oCurrent.type=="checkbox")
		        {
					var cbValue;
					if(oCurrent.checked)
					{
						cbValue = "yes";
					}
					else
					{
						cbValue = "no";
					}	
					aReturn.push('<' + oCurrent.id + '>' + cbValue + '</' + oCurrent.id + '>');
		        }
		        else
		        {
		            aReturn.push('<' + oCurrent.id + '>' + oCurrent.value + '</' + oCurrent.id + '>'); 
		        }
		    }
	    }
    }
    //aReturn.push('</form>');
    aReturn.push('</root>');
    sReturn = aReturn.join('');

    return sReturn;
}

function getFormElementsXML(strAttributeName, strAttributeValue){
    var arrElements = document.body;
    if (!arrElements.all)	
    {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else
    {
       arrElements = arrElements.all;
    }
	
    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn='';
	
    var aReturn =new Array();
    aReturn.push('<root>');
    //aReturn.push('<form>');
	
    for(var i=0; i<arrElements.length; i++){
	    oCurrent = arrElements[i];
	    oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
	    
	    if(typeof oAttribute == "string" && oAttribute.length > 0){
		    
		    
		    
		    if(typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))){
		        if(oCurrent.type=="checkbox"){
		            //aReturn.push('<formItems FieldName="' + oCurrent.id + '" Value="' + oCurrent.checked + '" />');
		            aReturn.push('<v id="' + oCurrent.id + '">' + oCurrent.checked + '</v>');
		            //aReturn.push('<v id="' + oCurrent.id + '">' + document.getElementById(oCurrent.id).checked + '</v>');
		        }else{
		            //aReturn.push('<formItems FieldName="' + oCurrent.id + '" Value="' + oCurrent.value + '" />');
                    aReturn.push('<v id="' + oCurrent.id + '">' + oCurrent.value + '</v>'); 
			//       aReturn.push('<v id="' + oCurrent.id + '">' + document.getElementById(oCurrent.id).value + '</v>'); 
		        }
		    }
	    }
    }
    //aReturn.push('</form>');
    aReturn.push('</root>');
    sReturn = aReturn.join('');

    return sReturn;
}

function CheckRequiredTextField(id)
{
    var o = MM_findObj(id)
    if (o)
    {
        if (o.value==null || o.value == "")
            return false;
    } 
    return true;    
}

function SetInnerHtml(ob, msg)
{
    var o = MM_findObj(ob);
    if (o)
    {
        o.innerHTML = msg;
    }
    else
    {
        alert(msg);
    }    
}

function SetCurrent(i)
{
    if(i == 'aTab1')
    {
        if (document.getElementById('aTab1'))
            document.getElementById('aTab1').className = "Tab1Current";
        if (document.getElementById('aTab2'))
            document.getElementById('aTab2').className = 'Tab2';
        if (document.getElementById('aTab3'))
            document.getElementById('aTab3').className = 'Tab3';
        if (document.getElementById('aTab4'))
            document.getElementById('aTab4').className = 'Tab4';
    }
    else if (i == 'aTab2')
    {
        if (document.getElementById('aTab1'))
            document.getElementById('aTab1').className = 'Tab1';
        if (document.getElementById('aTab2'))
            document.getElementById('aTab2').className = 'Tab2Current';
        if (document.getElementById('aTab3'))
            document.getElementById('aTab3').className = 'Tab3';
        if (document.getElementById('aTab4'))
            document.getElementById('aTab4').className = 'Tab4';
    }
    else if (i == 'aTab3')
    {
        if (document.getElementById('aTab1'))
            document.getElementById('aTab1').className = 'Tab1';
        if (document.getElementById('aTab2'))
            document.getElementById('aTab2').className = 'Tab2';
        if (document.getElementById('aTab3'))
            document.getElementById('aTab3').className = 'Tab3Current';
        if (document.getElementById('aTab4'))
            document.getElementById('aTab4').className = 'Tab4';
    }
    else if (i == 'aTab4')
    {
        if (document.getElementById('aTab1'))
            document.getElementById('aTab1').className = 'Tab1';
        if (document.getElementById('aTab2'))
            document.getElementById('aTab2').className = 'Tab2';
        if (document.getElementById('aTab3'))
            document.getElementById('aTab3').className = 'Tab3';
        if (document.getElementById('aTab4'))
            document.getElementById('aTab4').className = 'Tab4Current';
    }    

}

function ValidateEmail(obj)
{
    var str = obj.value;
    if (str == "")
        return false;
        
    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){
        //EmailAlert(obj);
       return false;
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        //EmailAlert(obj);
       return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        //EmailAlert(obj);
        return false;
    }

     if (str.indexOf(at,(lat+1))!=-1){
        //EmailAlert(obj);
        return false;
     }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        //EmailAlert(obj);
        return false;
     }

     if (str.indexOf(dot,(lat+2))==-1){
        //EmailAlert(obj);
        return false;
     }

     if (str.indexOf(" ")!=-1){
        //EmailAlert(obj);
        return false;
     }

     return true;
}

function EmailAlert(obj)
{
    obj.focus();
    obj.select();
    alert("The email address entered is not valid.\r\nPlease enter an email address with the format email@domain.com.");
}

function ValidatePhone(obj)
{
    if (obj.value == "")
        return false;
        
    if(obj.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1)
    {
        //alert("The phone number entered is not valid.\r\nPlease enter a phone number with the format xxx-xxx-xxxx.");
        //obj.focus();
        //obj.select();
        return false;
    }
}
