//Event.observe(window, 'load', init, false);

function init() {
	
allFields = Form.getElements("ajaxform");

for(i = 0; i < allFields.length; i++) {
	$("formStatus").innerHTML = "";

	//element = allFields[i].id +"_err";
	//$(element).hide();
	var directory = "";
}
}


function clearField(){
	$('search').value = "";
}

function populateCardFields(){
	
var today= new Date();
var thisday= today.getDate();
var thismonth= today.getMonth()+1;
var thisyear= today.getFullYear();


//populate month fields
for (var i=0; i < 12; i++){
	
var x= String(i+1);

$('StartMonth').options[i+1] = new Option(x,x);
$('ExpiryMonth').options[i] = new Option(x,x);
}

var range = 20;
var startyear = thisyear - range;
var endyear = thisyear + range;

//card start years
for (var i=1, j=startyear; j<=thisyear; i++, j++) {
var y= String(j);
$("StartYear").options[i] = new Option(y,y);
}

// card expiry years
for (var i=0, j=thisyear; j<=endyear; i++, j++) {
var y= String(j);
$("ExpiryYear").options[i] = new Option(y,y);
}

}



function setFormStatus(value, msg){
	
	$("formStatus").innerHTML = value;
	
	if(msg !=""){
		$("formStatus").innerHTML = msg;
	} else {
		$("formStatus").innerHTML = 'You have errors in your form. Please correct and re-submit';
	}
	$("formStatus").addClassName('error');
			//$(value.id + "_err").show();
			$(value.id + "_err").addClassName('error');
		
	}
	
	
	
/*=====================
validation functions
======================*/
function isNotEmpty(value){
	//document.write("check empty");
	$(value.id + "_err").removeClassName('error');
isvalid = true;
if($F(value).length < 2){
	isvalid = false;
	setFormStatus(value,"");
}
return isvalid;
}


function isMatch(value){
	$(value.id + "_err").removeClassName('error');
matchField = value.id.gsub('_2', '');
isvalid = true;
if($F(value) != $F(matchField)){
isvalid = false;
setFormStatus(value,"");
}
return isvalid;
}

function isValidEmail(value){
	$(value.id + "_err").removeClassName('error');
	isvalid = false;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	isvalid = filter.test($F(value))
	if(!isvalid) setFormStatus(value,"");
	return isvalid;
}

function isAlpha(value){
isvalid = false;
$(value.id + "_err").removeClassName('error');
var filter =  /^[a-zA-z\s]+$/	;
	isvalid = filter.test($F(value))
	if(!isvalid) setFormStatus(value,"");
	return isvalid;
}

function isAlphaNumeric(value){
isvalid = false;
$(value.id + "_err").removeClassName('error');
var filter =   /^[a-zA-Z0-9]+$/	;
	isvalid = filter.test($F(value))
	if(!isvalid) setFormStatus(value,"");
	return isvalid;
}

function isNumeric(value){
isvalid = false;
$(value.id + "_err").removeClassName('error');
var filter =  /^[-]?\d+(\.\d+)?$/	;
	isvalid = filter.test($F(value))
	if(!isvalid) setFormStatus(value,"");
	return isvalid;
}

function isSecurityNum(value){
	isvalid = true;
$(value.id + "_err").removeClassName('error');



var filter =  /^[-]?\d+(\.\d+)?$/	;
	isvalid = filter.test($F(value))
	
	
if($F(value).length < 3) isvalid = false;
if(!isvalid) setFormStatus(value,"");
	return isvalid;

}

function isValidCCNum(value){
	isvalid = false;
$(value.id + "_err").removeClassName('error');
var filter =  /^((4\d{3})|(5[1-5]\d{2})|(6011))([- ])?\d{4}([- ])?\d{4}([- ])?\d{4}|3[4,7]\d{13}$/
	isvalid = filter.test($F(value))
	if(!isvalid) setFormStatus(value,"");
	return isvalid;
}


function isValidTel(value){
	tel = $F(value).replace(" ","");
	$(value.id + "_err").removeClassName('error');
	isvalid = false;
	var filter  = /^([0-9]{11})$/;
	isvalid = filter.test(tel)
	if(!isvalid) setFormStatus(value, "");
	return isvalid;
	
}



function isValidCard(value){
	
	var isvalid = true;
	var cardno = $F(value).replace(" ","");
	$(value.id + "_err").removeClassName('error');
	//var isvalid = false;
	//return false if number less than 13 chars or higher than 16
	if(cardno.length < 13) isvalid = false;
	//check is numeric
	if(isNaN(cardno))  isvalid = false;

	if(!isvalid) setFormStatus(value,"");

	return isvalid;
}


function isValidCardDate(){
	$("StartMonth_err").removeClassName('error');
	$("ExpiryMonth_err").removeClassName('error');
	
	var today= new Date();
var thismonth= today.getMonth()+1;
var thisyear= today.getFullYear();
	//first check start date has been completed
	if($("StartMonth").selectedIndex > 0 && $("StartYear").selectedIndex >0){
	var sMonth = $F("StartMonth");
	var sYear = $F("StartYear");
	
	//check for valid start 
	
	if(sMonth > thismonth && sYear == thisyear){
		$("StartMonth_err").addClassName('error');
		isvalid = false;
	}
	
	}
	//check valid expiry
		var eMonth = $F("ExpiryMonth");
	var eYear = $F("ExpiryYear");
	if(eYear == thisyear && eMonth < thismonth){
		$("ExpiryMonth_err").addClassName('error');
		isvalid = false;
	
}
return isvalid;


}	



function isValidPC(value){
	$(value.id + "_err").removeClassName('error');
	isvalid = false;
	pc = $F(value).replace(" ","");
	var filter  = /^([A-Za-z]{1,2})([0-9]{2,3})([A-Za-z]{2})$/;
	isvalid = filter.test(pc)
	if(pc=='') isvalid = false;
	if(!isvalid) setFormStatus(value, "");
	return isvalid;
	}
	
function isValidPass(value){
	$(value.id + "_err").removeClassName('error');
	isvalid = true;
	if($F(value).length > 20 || $F(value).length < 8 || $F(value).indexOf(" ")> -1){
		isvalid = false;
		setFormStatus(value,"");
	}
	return isvalid;
}

function isSelected(value){
	$(value.id + "_err").removeClassName('error');
	isvalid = true;
	if(value.selectedIndex < 1){
	isvalid = false;
	setFormStatus(value,"");
	}
	return isvalid;
}

/*=====================
end validation functions
======================*/

function setAddress(){
	if($("address_delivery").checked){
	$("address_company_del").value = 	$("address_company").value;	
	$("address_address1_del").value = 	$("address_address1").value;
	$("address_address2_del").value = 	$("address_address2").value;
	$("address_address3_del").value = 	$("address_address3").value;
	$("address_towncity_del").value = 	$("address_towncity").value;
	$("address_county_del").value = 	$("address_county").value;
	$("address_postcode_del").value = 	$("address_postcode").value;
	//$("address_country_del").selectedIndex = $("address_country").selectedIndex;
} else {
	$("address_company_del").value = 	"";
$("address_address1_del").value = 	"";
	$("address_address2_del").value = 	"";
		$("address_address3_del").value = 	"";
	$("address_towncity_del").value = 	"";
	$("address_county_del").value = 	"";
	$("address_postcode_del").value = "";
	$("address_region").selectedIndex = 0;
}
}


function checkTerms(){
	
	if($("payment_terms").checked){
		return true
	} else {
		//alert("Please agree to the terms and conditions of purchase");
		return false
	}
	
}


validateForm = function(formid){
	var isvalid = true;
	var errors=0;
	allFields = Form.getElements(formid);
	
for(i = 0; i < allFields.length; i++) {
	
//first check field has value or is required
	if($(allFields[i]).hasClassName("required") || $F(allFields[i]) > 0 ||  $F(allFields[i]) != 0){
		
		
if($(allFields[i]).hasClassName('validemail')){
	isvalid = isValidEmail(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('notempty')){
	isvalid = isNotEmpty(allFields[i]);
if(!isvalid) errors++;
/*
} else if ($(allFields[i]).hasClassName('validpc')){
	isvalid = isValidPC(allFields[i]);
if(!isvalid) errors++;
*/
} else if ($(allFields[i]).hasClassName('validtel')){
	isvalid = isValidTel(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('match')){
	isvalid = isMatch(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('validpass')){
	isvalid = isValidPass(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('isselect')){
	isvalid = isSelected(allFields[i]);
if(!isvalid) errors++;


} else if ($(allFields[i]).hasClassName('isvalidcc')){
	isvalid = isValidCard(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('validpc')){
	isvalid = isValidPC(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('validcarddate')){
	isvalid = isValidCardDate();
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('isnumeric')){
	isvalid = isNumeric(allFields[i]);
if(!isvalid) errors++;

} else if ($(allFields[i]).hasClassName('issecnum')){
	isvalid = isSecurityNum(allFields[i]);
if(!isvalid) errors++;

} else {
// do nothing
}
	}
	
}

if(errors>0) isvalid = false;
return isvalid;
}


submitBillingForm = function(){
	
	var isvalid = validateForm("ajaxform");

//if form is valid

if(isvalid){
var params = Form.serialize($('ajaxform'));
//document.write(params);
var url = ajaxroot+'/ajax/ajax.billing.php';
//console.log(url);
$('ajaxform').disable();
$("formStatus").innerHTML = "Processing - please wait a moment";
newAjax = sendRequest(url,params,billingSuccess,billingError);
}
}
/*
submitAccountForm = function(){
	
	var isvalid = validateForm("ajaxform");

//if form is valid

if(isvalid){
var params = Form.serialize($('ajaxform'));
//document.write(params);
var url = 'ajax/ajax.account.php';
$('ajaxform').disable();
$("formStatus").innerHTML = "Processing - please wait a moment";
newAjax = sendRequest(url,params,billingSuccess,billingError);

}
}
*/
submitUpdateAccountForm = function(){
	
	var isvalid = validateForm("ajaxform");

//if form is valid

if(isvalid){
var params = Form.serialize($('ajaxform'));
//document.write(params);
var url = ajaxroot+'/ajax/ajax.account_update.php';
$('ajaxform').disable();
$("formStatus").innerHTML = "Sending form - please wait a moment";
newAjax = sendRequest(url,params,updateAccountSuccess,accountError);
}
}


submitPaymentForm = function(){
	//alert("pay");
//	$("cardError").removeClassName('error');
	isvalid = validateForm("ajaxform");
	
	if(isvalid){

	
	$("ajaxform").submit();
	
	$("content").innerHTML ='<div class="setheight"><div id="progbar"><h3 style="text-align:center;">Processing Payment Please Wait</h3><p  style="text-align:center;"><img src="images/ajax-loader.gif" width="220" height="19" alt="" /></p><p>Please do not click the browser back button during payment processing</p></div></div>';
	}
	
}


submitContactForm = function(){
	
	isvalid = validateForm("ajaxform");
if(isvalid){
var params = Form.serialize($('ajaxform'));
//document.write(params);
var url = ajaxroot+'/ajax/ajax.contact.php';
$('ajaxform').disable();
$("formStatus").innerHTML = "Sending message - please wait a moment";
newAjax = sendRequest(url,params,contactSuccess,contactError);
}
}


submitLoginForm = function(formid){
	
	isvalid = validateForm("ajaxform");
	
	if(isvalid){
		
	var params = Form.serialize($('loginform'));
	var url = ajaxroot+'/ajax/ajax.login.php';
	$('ajaxform').disable();
	$("formStatus").addClassName("error");
$("formStatus").innerHTML = "Signing in - Please wait";
if(formid == 1){
newAjax = sendRequest(url,params,loginSuccess,loginError);
} else {
newAjax = sendRequest(url,params,loginSuccessPod,loginError);	
}
}
}


submitPasswordForm = function(){
	isvalid = validateForm("ajaxform");
	
	if(isvalid){
		var params = Form.serialize($('ajaxform'));
	var url = ajaxroot+'/ajax/ajax.password.php';
	$('ajaxform').disable();
	$("formStatus").innerHTML = 'Sending Request - Please wait';
	newAjax = sendRequest(url,params,passwordSuccess,passwordError);
	
	}
	
}
/*=====================
ajax handler functions
======================*/


sendRequest = function(url,params,hf,ef){
	
new Ajax.Request(
	url,
	{
		method: 'post',
		parameters: params,
		onSuccess: hf,
		onFailure: ef
		});
}


billingSuccess = function(t){
	//alert("return");
	//console.log(t.responseText);
	if(t.responseText == 1){
	//accountError();
	} else {
		//console.log(ajaxroot);
	location.href= sec_root+"/checkout.php?checkout";
		
	}
	}
/*
newAccountSuccess = function(t){

	//show success message
if(t.responseText == 2){
	accountError();
	//alert (t.responseText);
} else if (t.responseText == 0){
	$('formwrap').innerHTML = '<h3>Your email address is already registered</h3><p>Please <a href="login.php" title="Login">login</a> to your account.</p><p>If you have forgotten your account details please <a href="password.php" title="Password Reminder">click here</a> for a reminder</p><p><a href="index.php" title="Continue"><img src="images/btn_continue.png" /></a></p>';
	
} else {
	//alert (t.responseText);
	$('formwrap').innerHTML = '<h3>Welcome to the Jupiter Blue online store</h3><p>Congratulations, you have successfully created your new account</p><p>We have sent you a welcome email. If you do not get this mail within 12 hours, please let us know.</p><p><a href="index.php" title="Continue"><img src="images/btn_continue.png" /></a></p>';

}
}
*/


updateAccountSuccess = function(t){
	////alert("back");
	//show success message
if(t.responseText == "error"){
	callError;
} else {
	$('formwrap').innerHTML = '<h3>Your Jupiter Blue account details have been successfully updated</h3><p>Please return to the home page by clicking the button below.</p><p><a href="index.php" title="Continue"><img src="images/btn_continue.png" /></a></p>';

}
}


billingError = function(t){
	$('formwrap').innerHTML = '<h3>Sorry, at this time we are unable to accept your order due to a server error.</h3><p>Please try again later, or contact our customer services department</p><p><a href="basket.php" title="Return to basket"><img src="images/btn_basket.png" alt="shopping basket" width="125" height="31" /></p>';
}

accountError = function(t){
	$('formwrap').innerHTML = '<h3>Sorry, at this time we are unable to accept your registration due to a server error.</h3><p>Please try again later, or contact our customer services department</p><p><a href="register.php" title="Try Again"><img src="images/btn_tryagain.png" alt="try again" width="125" height="31" /></p>';
}


loginSuccessPod = function (t){
	////alert("back");
if(t.responseText == "error"){
	loginError;
} else if (t.responseText == 0){
	
	$("formStatus").innerHTML = 'Login not found';
	$("formStatus").addClassName("error");
	$('ajaxform').enable();
	$('ajaxform').focusFirstElement();
} else {
	$("login").innerHTML = '<h2>Your Account</h2><div class="box-main"><p>Welcome back '+ t.responseText +'</p><p><a href="index.php?logout">Logout</a></p></div><div class="bottom"></div>';
}
}




loginSuccess = function (t){
	//alert(t.responseText);
if(t.responseText == "error"){
	loginError;
} else if (t.responseText == 0){
	$("formStatus").innerHTML = 'Login not found - please try again.';
	$("formStatus").addClassName("error");
	Form.reset('ajaxform');
	$('ajaxform').enable();
	$('ajaxform').focusFirstElement();
} else {
	//alert("fire");
	location.href="transfer.php";
	//$("formwrap").innerHTML = '<h3>Welcome back '+t.responseText+',</h3><p>you are now logged into your Jupiter Blue account.</p><p></p>';
}
}


loginError = function(){
	$("formStatus").innerHTML = '<p class="msg">Server Error. Please try again</p>';
}




contactSuccess = function(t){
	//alert("back");
	//show success message
if(t.responseText == "error"){
	contactError;
} else {
	$('formwrap').innerHTML = '<h3>Thank you for your enquiry</h3><p>We have received your message and will respond shortly</p><p><a href="index.php" title="Home"><img src="images/btn_back.png" width="81" height="31" alt="Send" /></a></p>';

}
}

contactError = function(){
	$('formwrap').innerHTML = '<h3>Sorry, at this time we are unable to accept your message due to a server error.</h3><p>Please try again later, or contact our customer services department</p><p>[Try Again]</p>';
}


passwordSuccess = function(t){
	//alert("back");
	//show success message
if(t.responseText == 0){
	contactError;
} else if(t.responseText == 2){
	$("formStatus").innerHTML = '<p class="msg">Email Address not found - please try again</p>';
	Form.reset('ajaxform');
	$('ajaxform').enable();
	$('ajaxform').focusFirstElement();
} else {
	$('formwrap').innerHTML = '<h3>Thank you for your request</h3><p>We have forwarded you an email with a reminder of your Jupiter Blue account details.</p><p><a href="index.php" title="Home"><img src="images/btn_signin.png" width="81" height="31" alt="Sign In" /></a></p>';

}
}

passwordError = function(){
	$('formwrap').innerHTML = '<h3>Sorry, at this time we are unable to accept your request due to a server error.</h3><p>Please try again later, or contact our customer services department</p><p>[Try Again]</p>';
}

function formatDate(day, month, year,field){
	var date = year+"-"+month+"-"+day;

	document.getElementById(field).value = date;
	//alert (document.getElementById('project_date').value);
}	


function populate(inForm,sday,smonth,syear,dayfld, monthfld, yearfld, startyr,endyr){
	//alert('pop');
var temp=0;

if (sday == 0){
var today= new Date();
var sday= today.getDate();
var smonth= today.getMonth()+1;
var syear= today.getFullYear();
}

var startyear= startyr;
var endyear = endyr;
t2= 3;
for (var i=0; i <31 ; i++){
var x= String(i+1);
document[inForm][dayfld].options[i] = new Option(x,x);
}

for (var i=-1; i <31 ; i++){
if(i=sday){
document[inForm][dayfld].options[i-1].selected=true;
break;
}
}

for (var i=0, j=startyear; j<=endyear; i++, j++) {
var y= String(j);
document[inForm][yearfld].options[i] = new Option(y,y);
}
for (var i=0, j=startyear; j<=endyear; i++, j++) {
if (j==syear){
document[inForm][yearfld].options[i].selected=true;
break;
}
}
		
for(var i=0;i<=12;i++){
if(i=smonth){
document[inForm][monthfld].options[i-1].selected=true;
break;
}
}
}



function submitForm(formid){
	
	thisform = "form"+formid;
	//alert($(thisform).sku_size_mtm.value);
	//if($("sku_size"+formid).value == 11 && $("sku_size_mtm").value == "Required size (length x width)" || $("sku_size"+formid).value == 11 && $("sku_size_mtm").value == ""){
		if($("item_mtm"+formid) != null){
		if($("item_mtm"+formid).value == 1 && $(thisform).sku_size_mtm.value == "Required size (length x width)" || $("item_mtm"+formid).value == 1 && $(thisform).sku_size_mtm.value == ""){
		alert ("Please enter your required size (length x width)");
	
		
	} else {
		$(thisform).submit();
		}
		}
	if ($("item_mtm"+formid) == null) $(thisform).submit();
	}
	


function submitCheckout(){
	var directory = "";
	$("check").action=sec_root+"/checkout.php";
	$("check").submit();
}


function submitBasket(url){
	
	$('basket').action = url;
    $('basket').submit();
}

function gotoURL(url){
	location.href=url;
}

fadeTerms = function(){
		//$("checkout").disable();
	new Effect.Opacity("fade", {duration:1.0, from:1.0, to:0.2});
	Effect.Fader("alertbox");

}

agreeTerms = function(id){
	var directory = "";
if(id == 1){
//terms accepted
//$("check").action=sec_root+"/payment.php";
	$("check").submit();


} else {
	//terms declined

	//$("checkout").enable();
	new Effect.Opacity("fade", {duration:1.0, from:0.2, to:1.0});
		Effect.Fader('alertbox');
}
}



