﻿var Form = Form ? Form : {

    ValidateEmail : function(obj)
    {
        var str = obj.value;
        if (str == "")
            return true;
            
        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){
            this.EmailAlert(obj);
           return false;
        }

        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
            this.EmailAlert(obj);
            return false;
        }

         if (str.indexOf(at,(lat+1))!=-1){
            this.EmailAlert(obj);
            return false;
         }

         if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
            this.EmailAlert(obj);
            return false;
         }

         if (str.indexOf(dot,(lat+2))==-1){
            this.EmailAlert(obj);
            return false;
         }

         if (str.indexOf(" ")!=-1){
            this.EmailAlert(obj);
            return false;
         }

         return true;
    },

    EmailAlert : function(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.");
    },

    ValidatePhone : function(obj)
    {
        if (obj.value == "")
            return true;
            
        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;
        }
    },

    SubmitForm : function(strAttribName, strAttribValue)
    {
        var x = this.getFormElementsXML(strAttribName, strAttribValue);
        x = x.replace(document.getElementById("hidSubject").value, 'ddlSubject');
        Hardcore.AjaxAPI.FormAPI.ContactUsSubmit(x, this.ContactUsSubmit_process.createDelegate(this));
    },
    ContactUsSubmit_process : function(response)
    {
        if(response.error)
        {
            d.Message('Error', 'There was an error message from the AJAX call:\n\n' + response.error.Message);
        }
        else
        {
            d.Content("Thank You", 'divThankYou');
        }
    },

    PopulateUserFields : function (xmlDoc)
    {
       for (var i = 0, child; child = xmlDoc.childNodes[i]; i++)
        {
            if (child.attributes != null)
            {
                var o = document.getElementById(child.attributes[0].nodeValue);
                if (o)
                {
                    if (o.type == 'select-one')
                    {
                        for(var c = 0; c < o.options.length; c++)
                        {
                            if(child.firstChild)
                            {
                                if(o.options[c].value == child.firstChild.nodeValue)
                                {
                                    //o.options[c].selected == true;
                                    o.selectedIndex = c;
                                    break;
                                }
                            }
                        }
                        //if the typeOfAddress ddl = Iternational, show country
                        if (child.attributes[0].nodeValue == 'bTypeAddress')
                            this.AddressTypeChange(o, 'B');
                        else if (child.attributes[0].nodeValue == 'sTypeAddress')
                            this.AddressTypeChange(o, 'S');

                    }
                    else
                    {
                        if(child.firstChild)
                        {
                            if(child.firstChild.nodeValue != 0)
                            {
                                var s = child.firstChild.nodeValue;
                                s = s.replace(/^\s+|\s+$/g,"");
                                o.value = s;
                            }
                        }
                    }
                }
            }         
        }
    },
    
    getFormElementsXML : function(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>');
    	
	    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('<v id="' + oCurrent.id + '">' + document.getElementById(oCurrent.id).checked + '</v>');
			        else
				        aReturn.push('<v id="' + oCurrent.id + '">' + document.getElementById(oCurrent.id).value + '</v>'); 
			    }
		    }
	    }
	    aReturn.push('</root>');
	    sReturn = aReturn.join('');

	    return sReturn;
    },
    
    
     getFormElementsArray : function(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();
    	
	    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))){
    	            aReturn.push(oCurrent.id);
			    }
		    }
	    }

	    return aReturn;
	}}
    
