﻿var registerUser = true;
var curGroup = 1;
var numberOfGroups = 0;
function trimString(str)
{
	var i, tStr, spaces = 0;
	
	// trim leading spaces
	for (i=0; i<str.length; i++)
	{
		if(str.charAt(i) == " ")
		{
			spaces++;
		}
		else
			break;
	}
	tStr = str.substring(spaces,str.length);
	
	spaces = 0;
	// trim following spaces
	for (i=tStr.length + 1; i>=0; i--)
	{
		if(str.charAt(i) == " ")
		{
			spaces++;
		}
		else
			break;
	}
	tStr = tStr.substring(0,tStr.length - spaces);
	
	return tStr;
}

function isZIPCode (zip)
{  if (isEmpty(zip)) 
       if (isZIPCode.arguments.length == 1) return defaultEmptyOK;
       else return (isZIPCode.arguments[1] == true);
   return (isInteger(zip) && 
            ((zip.length == 5) ||
             (zip.length == 9)))
}

function goodEmailAddress(eml)
{
	var at, dot, len, e;
	
	e = trimString(eml);
	if (e.indexOf(" ") > 0)
		return false;
	at = e.indexOf("@");
	dot = e.lastIndexOf(".");
	len = e.length;

	if (at > 0 && dot > at + 1 && len > dot + 2)	
		return true;
	else
		return false;
}

function validateEmail(value) {
    return /^[\w\.\-]+@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]{1,})*(\.[a-zA-Z]{2,3}){1,2}$/.test(value);
}

// Custom validation method for zip code.
function validateZipCode(value) {
    return /^\d{5}[- ]?(\d{4})?$/.test(value);
}

 function nextScreen() {
        var curDiv;
        var progress = Math.round((curGroup / numberOfGroups) * 100);        
        if(curGroup < numberOfGroups)
        {
            curDiv = document.getElementById("qaGroup" + curGroup.toString());
            document.getElementById("nextBtn").src = "images/NextButton.jpg";
            if(validateFormElements(curDiv))
            {
                //move to next screen
                setProgress(progress);
                curDiv.style.display = "none";
                curGroup++;
                document.getElementById("qaGroup" + curGroup.toString()).style.display = "inline";
                if (curGroup == numberOfGroups) {
                    document.getElementById("nextBtn").src = "images/SubmitButton.jpg";
                }
            }            
        }
        else    
        {
            // we are on the last screen
            curDiv = document.getElementById("qaGroup" + curGroup.toString());
            if(validateFormElements(curDiv)) {
                setProgress(progress);
                var theForm = document.getElementById('aspnetForm'); document.forms['aspnetForm'];
        
                if (!theForm) {
                    theForm = document.form1;
                }
                theForm.submit();
                setProgress(100);
            }
        }
        
        if(curGroup == 1)
            document.getElementById("btnBack").style.display = "none";
        else
            document.getElementById("btnBack").style.display = "inline";
    }
    
    function previousScreen()
    {
        if(curGroup > 1)
        {
            document.getElementById("qaGroup" + curGroup.toString()).style.display = "none";
            curGroup--;
            document.getElementById("qaGroup" + curGroup.toString()).style.display = "inline";
            
            if(curGroup == 1)
                document.getElementById("btnBack").style.display = "none";
            else    
                document.getElementById("btnBack").style.display = "inline";                
        }
    }
    
    function validateFormElements(div) 
    {   
        var elm;
       
        if(!div) {        return false;      }   
           
        div = typeof div === "string" ? document.getElementById(div) : div;      
        var elms = div.getElementsByTagName("*"); 
        
        for(var i = 0, maxI = elms.length; i < maxI; ++i) 
        {        
           elm = elms[i];

           if(isQuestion(elm.type)) 
           {
               if(!questionAnswered(elm))
                {
                    return false;
                }
            }  
        }        
        return true;
    }
    
    function isQuestion(eType)
    {
        return (eType == "text" || eType == "radio" || eType == "textarea" || eType == "checkbox")
    }
    
    function questionAnswered(elm)
    {
        switch(elm.type) 
        {          
            case "text": 
                return validateText(elm);
            case "textarea":  
                return validateTextarea(elm);        
            //case "button":          
            //case "reset":          
            //case "submit":          
            //case "file":          
            //case "hidden":          
            //case "password":          
            //case "image":          
            case "radio": 
                return validateRadio(elm);         
            case "checkbox":          
                return validateCheckbox(elm);
            //case "select-one":          
            //case "select-multiple":            
        } 
        
        return true;     
    }
    
    function displayMessage(txt, elm)
    {
        var msg = document.getElementById("msg_" + elm.name);
        
        if(txt != '')
        {
            msg.innerHTML = txt;
            msg.style.display = "inline";
        }
        else {
            msg.innerHTML = "";
            msg.style.display = "none";
        }
    }

    function validateZipAndEmail(elm) {
        if (elm.name == "zip") {
            if (!validateZipCode(elm.value)) {
                displayMessage("*Invalid zip code entered", elm);
                return false;
            }
        }
        else if (elm.name == "email") {
            if (!validateEmail(elm.value)) {
                displayMessage("*Invalid email address entered", elm);
                return false
            }            
        }
        displayMessage("", elm);
        return true;
    }

    function bypassPersonalInfo(elm) {
        var bypass = false;
        if(getCustomerID){
            var id =  getCustomerID();
            if(id > 0){
                displayMessage('', elm);
                bypass = true;
            }
        }
        return bypass;
    }
    
    function validateText(elm)
    {
        var txt = trimString(elm.value);
        
        var userDiv = document.getElementById("registerUser");
        
        switch(elm.name)
        {
            case "first_name":
            case "last_name":
                if (bypassPersonalInfo(elm)) {
                    return true;
                }
                break;
            case "email":
            case "zip":
                if (bypassPersonalInfo(elm)) {
                    return true;
                }
                return validateZipAndEmail(elm);
                break;
            default:
                break;
        }
        
        if(elm.className == 'txtNum' && isNaN(txt))
        {
            displayMessage('*Input must be numeric', elm);
            elm.focus();
            return false;
        }
        
        if(txt == '')
        {
            displayMessage('*Input required', elm);
            elm.focus();
            return false;
        }
        
        displayMessage('', elm);
        return true;
    }
    
    function validateTextarea(elm)
    {
        var txt = trimString(elm.value);
   
        if(txt == '')
        {
            displayMessage('*Input required', elm);
            elm.focus();
            return false;
        }
        
        displayMessage('', elm);
        return true;
    }
    
    function validateRadio(elm)
    {
        var answered = false;
        var radiogroup = document.getElementsByName(elm.name);
        
        for(var i=0; i<radiogroup.length; i++)
        {
            if(radiogroup[i].checked)
            {
                answered = true;
            }
        }
        
        if(!answered)
        {
            displayMessage('*Input required', elm);
            elm.focus();
            return false;
        }
        
        displayMessage('', elm);
        return true;
    }
    
    function validateCheckbox(elm)
    {
        //alert('validateCheckbox elm = ' + elm.name);
    
        var answered = false;
        var cbgroup = document.getElementsByName(elm.name);
        
        for(var i=0; i<cbgroup.length; i++)
        {
            if(cbgroup[i].checked)
            {
                answered = true;
            }
        }
        
        if(!answered)
        {
            displayMessage('*Input required', elm);
            elm.focus();
            return false;
        }
        
        displayMessage('', elm);
        return true;
    }
    
    
    var loginWindow;
    var customerID;
        
    function openLogInWindow(url){            
            loginWindow = window.open(url, "loginWindow", "height=250, width=300,status=0,toolbar=0,menubar=0,location=0");
            //loginWindow.document.focus();
        }

        function openPasswordRetrieval(url) {
            passwordWindow = window.open(url, "passwordWindow", "height=350, width=400,status=0,toolbar=0,menubar=0,location=0");
            //loginWindow.document.focus();
        }
    
    function setProgress(percentage){
        document.getElementById("progress").innerHTML = percentage + "%";
        document.getElementById("divProgress").style.width = percentage + "%";
    }

    
    function getCustomerID(){        
        customerID = document.getElementById("hdnCustomerID").value;        
        return customerID;
    }

    function setGroupDisplay() {
        for (var i = 1; i <= numberOfGroups; i++) {
            if (i == curGroup) {
                if (document.getElementById("qaGroup" + i.toString())) {
                    document.getElementById("qaGroup" + i.toString()).style.display = "block";
                    continue;
                }
            }

            var elementID = "qaGroup" + i.toString();
            if (document.getElementById(elementID)) {
                document.getElementById(elementID).style.display = "none";
            }
        }
        if (curGroup < 2) {
            document.getElementById("btnBack").style.display = "none";
        }
        else if (curGroup == numberOfGroups) {
        document.getElementById("nextBtn").style.backgroundImage = "url(images/SubmitButton.jpg)";
        }
        else {
            document.getElementById("btnBack").style.display = "none";
            document.getElementById("nextBtn").src = "url(images/NextButton.jpg)";
        }
    }

    function showMessageBox(messageType, message) {
        var mainDiv = document.getElementById("divMain");
        var messageDiv = "<div class='messageBox " + messageType + "'><div class='" + messageType + "-icon'>" + message + "</div><div class='clear'></div></div><div class='clear'></div>";        
        if (mainDiv != null) {
            mainDiv.innerHTML = messageDiv + mainDiv.innerHTML;
        }
    }

    function showModal(modalID) {
        var modal = $find(modalID);
        if (modal) {
            modal.show();
        }
    }

    function hideModal(modalID) {
        var modal = $find(modalID);
        if (modal) {
            modal.hide();
        }
    }

    function resetDisplay(group) {
        curGroup = group;
        setGroupDisplay();
    }

