// Declare variables
var msgRequest = null;


function ValidateInput(inputType){

    //Declare variables
    var PostData = "";
    
    switch(inputType){
    
        case 'memberSignup':
        
            isEmpty('first_name');
            isEmpty('surname');
            isDate('dob');
            isEmail('email');
			isEmpty('street');
			isEmpty('suburb');
			isEmpty('postcode');
			isEmpty('username');
			isPassword('password');
			
			return true;

        break;
        
        case 'memberEdit':
        
            isEmpty('first_name');
            isEmpty('surname');
            isDate('dob');
            isEmail('email');
			isEmpty('street');
			isEmpty('suburb');
			isEmpty('postcode');
			isEmpty('username');
			
			return true;

        break;
		
        case 'purchaseSignup':
        
            isEmpty('first_name');
            isEmpty('surname');
            isDate('dob');
            isEmail('email');
			isEmpty('street');
			isEmpty('suburb');
			isEmpty('postcode');
			
			return true;
        
        break;

        case 'purchaseConfirm':

            isPleaseSelect('payment');
            isPleaseSelect('delivery');
			isPostageValid('purchase_total_delivery_price_display');

			return true;
        
        break;

		case 'purchasePayment':

            isEmpty('payment_cc_name');
            isEmpty('payment_cc_number1');
            isEmpty('payment_cc_number2');
            isEmpty('payment_cc_number3');
            isEmpty('payment_cc_number4');
			isDropDownEmpty('payment_cc_expiry_month');
			isDropDownEmpty('payment_cc_expiry_year');

			return true;
        
        break;

        case 'memberPasswordChange':
        
            isEmpty('current_password');
            isPassword('password');
			
			return true;
        
        break;
		
		case 'memberInvite':
        
            isEmpty('your_name');
            isEmail('your_email');
            isEmpty('friend_name');
            isEmail('friend_email');
			
			return true;
		
        break;
		
        case 'retrievePassword':
        
            PostData = "username=" + isEmpty('username');
			
			return PostData;
        
        break;
		
        case 'contactSend':

            isEmpty('first_name');
            isEmpty('surname');
            isEmail('email');
			isEmpty('subject');
			isEmpty('comments');
//			isCaptchaMatch('captchaCode');
			
			return true;

        break;
        
        case 'warrantySend':
        
            isEmpty('first_name');
            isEmpty('surname');
            isEmail('email');
			isEmpty('product_code');
			isEmpty('faulty_description');
			isEmpty('invoice_number');
			isDate('invoice_date');
			isChecked('ack_1');
			isChecked('ack_2');
			isChecked('ack_3');
			isChecked('ack_4');
			
			return true;

        break;	

        case 'archiveProducts':

			isDate('archive_date');
			
			return true;

        break;	
		

    }
    
    return false;

}


//Check if field is empty
function isEmpty(id){

    var value = document.getElementById(id).value;

    if(value == ""){

        document.getElementById(id+"Error").setAttribute("class","validate_error");
        document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Not Completed';

		document.getElementById(id).focus();
		
        throw "Validation Error";
        
    }else{

        document.getElementById(id+"Error").innerHTML = "";
        
        return value;
        
    }

}


//Check if valid email was entered
function isEmail(id){

    //Check if email is not empty first
    isEmpty(id);
    
    var value = document.getElementById(id).value;
    var index = value.indexOf("@");

    if (index > 0){
    
        var pindex = value.indexOf(".",index);
        
        if ((pindex > index+1) && (value.length > pindex+1)){
  
            document.getElementById(id+"Error").innerHTML = "";
        
            return value;
            
        }
        
    }

    document.getElementById(id+"Error").setAttribute("class","validate_error");
    document.getElementById(id+"Error").innerHTML =  '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Not Valid Email';

	document.getElementById(id).focus();
		
    throw "Validation Error";
            
}


//Check if field is empty
function isDate(id){

    //Check if date is not empty first
	//isEmpty(id);
    
    var value = document.getElementById(id).value;

	if( '' == value )
	{
		return '';
	}

    value = value.replace("/","-");
    value = value.replace("/","-");

    var valueArray = value.split("-");
    
    if(IsNumeric(valueArray[0])){

        if(IsNumeric(valueArray[1])){

            if(IsNumeric(valueArray[2]) && valueArray[2].length == 4){

                document.getElementById(id+"Error").innerHTML = "";
        
                return value;

            }
            
        }

    }
    
    document.getElementById(id+"Error").setAttribute("class","validate_error");
    document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Not Valid Date';

	document.getElementById(id).focus();
		
    throw "Validation Error";
    
}


//Check if valid email was entered
function isPassword(id){

    //Check if email is not empty first
    isEmpty(id);
	
	var value = document.getElementById(id).value;
	var value_confirm = document.getElementById(id + "_confirm").value;
   
    if (value == value_confirm){
  
		return value;
            
    }

    document.getElementById(id+"Error").setAttribute("class","validate_error");
    document.getElementById(id+"Error").innerHTML =  '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Password dont match';

	document.getElementById(id).focus();
		
    throw "Validation Error";
            
}


function IsNumeric(value){

    var validChars = "0123456789";
    var isNumber = true;
    var character;

    //Return if empty or undefinded:
    if(value == "" || value == undefined){
    
        return false;
    
    }
     
    for (i = 0; i < value.length && isNumber == true; i++){ 
    
        character = value.charAt(i); 
        
        if (validChars.indexOf(character) == -1){
        
            isNumber = false;
        }
        
    }
   
    return isNumber;
   
}


//Check if field is checked
function isChecked(id){

    var value = document.getElementById(id).checked;

    if(value == false){

        document.getElementById(id+"Error").setAttribute("class","validate_error");
        document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Not Completed';

		document.getElementById(id).focus();
		
        throw "Validation Error";
        
    }else{

        document.getElementById(id+"Error").innerHTML = "";
        
        return value;
        
    }

}



//Check if dropdown is please select
function isPleaseSelect(id){

    var value = document.getElementById(id)[document.getElementById(id).selectedIndex].innerHTML;

    if(value == "Please Select"){

        document.getElementById(id+"Error").setAttribute("class","validate_error");
        document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Please Select';

		document.getElementById(id).focus();
		
        throw "Validation Error";
        
    }else{

        document.getElementById(id+"Error").innerHTML = "";
        
        return value;
        
    }

}

function isDropDownEmpty(id){

    var value = document.getElementById(id).value;

    if(value == ""){

        document.getElementById(id+"Error").setAttribute("class","validate_error");
        document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Please Select';

		document.getElementById(id).focus();
		
        throw "Validation Error";
        
    }else{

        document.getElementById(id+"Error").innerHTML = "";
        
        return value;
        
    }

}


//Check if dropdown is Empty
function isPostageValid(id)
{
    var value = document.getElementById(id).innerHTML;

    if(value == "Unavail.")
	{
        document.getElementById(id+"Error").setAttribute("class","validate_error");
        //document.getElementById(id+"Error").innerHTML = "<br />The delivery option you've selected is weight restricted and isn't available for this order.<br /><b>Please reselect and click 'Confirm Purchase'.</b>";

		alert("The delivery option you've selected is weight restricted and isn't available for this order.");

		document.getElementById(id).focus();
		
        throw "Validation Error";    
    }
	else
	{
        document.getElementById(id+"Error").innerHTML = "";
        
        return value;   
    }
}

//Check if captcha image is correct match
function isCaptchaMatch(id){

    var value = document.getElementById(id).value;
	
	//Make Call To Server Side
	msgRequest = createXMLRequest();
		
	var postData = "captchaCode=" + value;

    if(universalPostToServer("/post_data/post_data_captcha.php", "validate", postData, false) != "true"){

        document.getElementById(id+"Error").setAttribute("class","validate_error");
        document.getElementById(id+"Error").innerHTML = '<img src="/images/icons/validate_arrow_right.png" class="validate_error_arrow"/> Please correctly enter the verification code above.<br/>';

		document.getElementById(id).focus();
		
        throw "Validation Error";
        
    }else{

        document.getElementById(id+"Error").innerHTML = "";
        
        return value;
        
    }

}


// Reload a captcha image
function reloadCaptcha(){
	
	//Make Call To Server Side
	msgRequest = createXMLRequest();
	
    //Display Loading Div
    displayLoadingDivSimple('loading_div_captcha');
	
	universalPostToServer("/post_data/post_data_captcha.php", "reload", '', true, reloadCaptchaCallBackFunction, msgRequest, true);

}

function reloadCaptchaCallBackFunction() {

	if (msgRequest.readyState == 4) {

		if (msgRequest.status == 200) {

			var message = msgRequest.responseText;

			hideLoadingDivSimple('loading_div_captcha', 100);

			if (message) {

                document.getElementById('captchaCodeImg').src = '/imagesCaptcha/' + message;
                
			}else{
			
				alert('An error has occurred while reloading your verification image');

			}
						
		} 
			
	} 

}
