var loading = '<img src="images/common/spinner.gif" width="16" height="16" title="Loading..." />';
// Common
function ajaxFailure(response){
	alert('Ajax Request Failure');
}

function numbersonly(myfield, e, dec)
{
	var key;
	var keychar;
	
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) )
	   return true;
	
	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	
	// decimal point jump
	else if (dec && (keychar == "."))
	   {
	   myfield.form.elements[dec].focus();
	   return false;
	   }
	else
	   return false;
}

// Get top panel info
function topPanel(){
	$($('top_panel')).innerHTML = loading;
	var url = 'rw_ajax_menu.php';
	var ajax = new Ajax.Request(url, {
	method: 'get',
	//parameters: params,
	onFailure: ajaxFailure,
	onComplete: topPanelComplete
	});
}

function topPanelComplete(response){
	$($('top_panel')).innerHTML=response.responseText;
}


// Register
function checkEmail(o){
	var v = o.value;
	if(v == "")	{
		$($('emailflag')).innerHTML = "Your e-mail cannot be blanked!";
	}else{
		if(isValidEmail(v)){
			$($('emailflag')).innerHTML = loading;
			registerRequest(v);
		}else{
			$($('emailflag')).innerHTML = "Your e-mail is invalid!";
		}
	}
}

function isValidEmail(str){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)){
		return true;
	}else{
		return false;
	}
}

function registerRequest(a){
	
	var url = 'rw_ajax_register.php';
	var params = 'email='+encodeURIComponent(a);
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: registerComplete
});
}

function registerComplete(response) {
	var g = response.responseText;
	if(g=='2'){	
		$($('emailflag')).innerHTML="This email address cannot be used.<br>It has already been registered.";
	}else{
		//$($('emailflag')).innerHTML="Your e-mail is valid.";
		$($('emailflag')).innerHTML="";
	}
}

function checkRegister() {
	var email = document.registerform.email;
	var firstname = document.registerform.firstname;
	var lastname = document.registerform.lastname;
	msg = "",  error = false;
	
	if(email.value=="") {
		error = true;
		msg+="- Please fill in your email.\n";
		email.focus();
		email.select();
	}
	else {
		if(!isValidEmail(email.value)){
			error = true; 
			msg += "- Your email address must be valid.\n";
			email.focus();
			email.select();
		}
	}
	
	if(firstname.value=="") {
		if (!error) {firstname.focus(); firstname.select();}
		error = true;
		msg+="- Please fill in your first name.\n";
	}
	
	if(lastname.value=="") {
		if (!error) {lastname.focus(); lastname.select();}
		error = true;
		msg+="- Please fill in your last name.\n";
	}
	
	if (error) {
		alert(msg);
		// location.href="http://www.google.com"
	}
	else{
		registerAction(email.value, firstname.value, lastname.value);
		//Lightbox.hideBox();
		//topPanel();
	}
}

function registerAction(a, b, c){
	var url = 'rw_ajax_register_action.php';
	var params = {email:a, firstname:b, lastname:c};
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: registerActComplete
});
}

function registerActComplete(response){
	var v = response.responseText;
	if(v==4){
		pageTracker._trackPageview("/member_registration_successfully_completed" );
		$($('registerDiv')).innerHTML="<strong>Thank you for your registration.</strong><br /><br />You will receive an email shortly verifying your password. Should you not receive this email within ten minutes, please check your junk mail and be sure to add info@reservewineclub.com.sg into your safe list.<br><br><img src='images/common/btn_ok.gif' border='0' onclick='mf_Lightbox.hideBox();' width='30' height='14'/>";
	}else if(v==2){
		pageTracker._trackPageview("/member_registration_failed_duplicate_email" );
		$($('registerDiv')).innerHTML="This email address cannot be used. It has already been registered.";
	}else{
		pageTracker._trackPageview("/member_registration_failed_generic_error" );
		$($('registerDiv')).innerHTML="Error Occurred.";
	}
}
// Login
function checkLogin() {
	var email = document.loginform.email;
	var password = document.loginform.password;

	msg = "",  error = false;
	
	if(email.value=="") {
		error = true;
		msg+="- Please fill in your email.\n";
		email.focus();
		email.select();
	}

	
	if(password.value=="") {
		if (!error) {password.focus(); password.select();}
		error = true;
		msg+="- Please fill in your password.\n";
	}
	
	if (error) {
		alert(msg);
		// location.href="http://www.google.com"
	}
	else{
		loginAction(email.value, password.value);
		
	}
}

function loginAction(a, b){
	var url = 'rw_ajax_login_action.php';
	var params = {email:a, password:b}
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: params,
		onFailure: ajaxFailure,
		onComplete: loginActComplete
	});
}

function loginActComplete(response){
	var v = response.responseText;
	$($('loginDiv')).innerHTML=v;
	//Lightbox.hideBox();
	topPanel();

	// if login successful, delay 3 seconds before reloading the page
	if (v == '<center>You have logged in successfully.</center>') {
		setTimeout(location.reload(true), 3000);
	}
}

function forgotPassword(){
	var url = 'rw_ajax_forgot_password.php';
	var ajax = new Ajax.Request(url, {
	method: 'get',
	//parameters: params,
	onFailure: ajaxFailure,
	onComplete: forgotPasswordComplete
});
}

function forgotPasswordComplete(response){
	var v = response.responseText;
	if(v=='0'){
		$($('boxContents')).innerHTML = 'You are unable to reset your password currently.';
	}else{
		$($('boxContents')).innerHTML = response.responseText;
	}
}

function forgotPasswordAction(){
	
	var val = $($('email')).value;
	//var mot = $($('mothersname')).value;
	var url = 'rw_ajax_forgot_password_action.php';
	var error = false;
	if(!val){
		$($('forgotFlag')).innerHTML = 'Please fill in your email.';
		$($('email')).focus;
		error = true;
	}
	
	/*if(!error && !mot){
		$($('forgotFlag')).innerHTML = 'Please fill in your mother\'s name.';
		$($('mothersname')).focus;
		error = true;
	}*/
	
	if(!error){
		if(isValidEmail(val)){
			$($('forgotFlag')).innerHTML = '';
			//var params = {email:val, mothersname:mot};
			var params = {email:val};
			var ajax = new Ajax.Request(url, {
			method: 'get',
			parameters: params,
			onFailure: ajaxFailure,
			onComplete: forgotPasswordActComplete
			});
		}else{
			$($('forgotFlag')).innerHTML = 'Your email address is invalid.';
		}
	}
}

function forgotPasswordActComplete(response){
	var v = response.responseText;
	if(v=='1'){
		$($('boxContents')).innerHTML = 'You will receive an email shortly with your temporary password. Should you not receive this email within ten minutes, please check your junk mail and be sure to add info@reservewineclub.com.sg to your safe list.';
	}else{
		$($('boxContents')).innerHTML = 'We are unable to reset your password currently.';
	}
}
// logout

function logoutAction(){
	var url = 'rw_ajax_logout_action.php';
	var ajax = new Ajax.Request(url, {
	method: 'get',
	onFailure: ajaxFailure,
	onComplete: logoutActComplete
});
}

function logoutActComplete(response){
	location.reload(true);
}

// update profile


function profileUpdate(o){
	var obj = $($(o));
	var flag = $($(o+'flag'));
	
	obj.readOnly = true;
	flag.innerHTML = loading;
	
	if(obj.value=='' || obj.value=='0'){
		if(o=='cardtype' || o=='age'){
			profileAction(o, '---');
		}else{
			profileAction(o, '0');
		}
	}else{
		profileAction(o, obj.value);
	}
}

function profileAction(o, v){
	var obj = $($(o));
	var flag = $($(o+'flag'));
	var url = 'rw_ajax_profile_action.php';
	
	var params = o+'='+encodeURIComponent(v);
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: profileActComplete
});
}

function profileActComplete(response){
	var v = response.responseText;
	//alert(v);
	var a =  v.split(',');
	if(a[1]=='0'){
		var msg = 'Update failed.';
	}else if(a[1]=='1'){
		var msg = 'Updated.';
	}else if(a[1]=='-1'){
		alert('You are not logging in.');
	}else{
		var msg = 'Error occurred.';
	}
	if(a[0]=='firstname') topPanel();
	$($(a[0]+'flag')).innerHTML = msg;
	$($(a[0])).readOnly = false;
}

// Profile - change password

function passwordUpdate(){
	msg = "",  error = false;
	
	if(document.passwordform.old_password.value=="") {
		error = true;
		msg+="- Please fill in your old password.\n";
		document.passwordform.old_password.focus();
		document.passwordform.old_password.select();
	}
	
	if(document.passwordform.new_password.value=="") {
		if (!error) {document.passwordform.new_password.focus(); document.passwordform.new_password.select();}
		error = true;
		msg+="- Please fill in your new password.\n";
	}
	
	if(document.passwordform.cfm_password.value=="") {
		if (!error) {document.passwordform.cfm_password.focus(); document.passwordform.cfm_password.select();}
		error = true;
		msg+="- Please fill in your confirm new password.\n";
	}
	
	if(document.passwordform.new_password.value!=document.passwordform.cfm_password.value){
		if (!error) {document.passwordform.new_password.focus(); document.passwordform.new_password.select();}
		error = true;
		msg+="- Your new password and confirm new password must be same.\n";
	}
	
	if (error) {
		alert(msg);
	}
	else{
		passwordAction(document.passwordform.old_password.value,document.passwordform.new_password.value,document.passwordform.cfm_password.value);
	}
}

function passwordAction(a, b, c){
	$($('passwordflag')).innerHTML = loading;
	var url = 'rw_ajax_change_password_action.php';
	var params = {old_password:a,new_password:b, cfm_password:c}
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: passwordActComplete
});
}

function passwordActComplete(response){
	var v = response.responseText;
	if(v == 4){
		$($('passwordflag')).innerHTML="Updated successfully.";
	}else if(v == 3){
		$($('passwordflag')).innerHTML="The minimum password length is 6 digits.";
	}else if(v == 2){
		$($('passwordflag')).innerHTML="New password and confirm password are different.";
	}else if(v == 1){
		$($('passwordflag')).innerHTML="Old Password incorrect.";
	}else{
		$($('passwordflag')).innerHTML="Error Occurred.";
	}
	document.passwordform.reset();
}

// voucher activate

function voucherActivate(){
	if($($('voucher_code')).value.length != 10){
		$($('voucherflag')).innerHTML = 'Your voucher activation code appears to be invalid. Please try again, or call 1800 392 1181 (Select option 2) for assistance.';
		$($('voucher_code')).select();
		$($('voucher_code')).focus();
	}else{
		$($('voucherflag')).innerHTML = '<img src="images/common/loading.gif" width="20" height="20" title="Loading..." />';
		var url = 'rw_ajax_voucher_action.php';
		var params = {code:encodeURIComponent($($('voucher_code')).value)}
		var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: params,
		onFailure: ajaxFailure,
		onComplete: voucherActComplete
	});
	}
}

function voucherActComplete(response){
	var v=response.responseText;
	$($('boxContents')).innerHTML = v;
	topPanel();

	// if voucher activated successful, delay 3 seconds before reloading the page
	if (v == 'Your voucher has been activated successfully.') {
		setTimeout(location.reload(true), 3000);
	}

}

// shopping cart
function shoppingCart(){
	$($('shoppingDetailDiv')).innerHTML = loading;
	var url = 'rw_ajax_shopping_cart.php';
	var ajax = new Ajax.Request(url, {
	method: 'get',
	//parameters: params,
	onFailure: ajaxFailure,
	onComplete: shoppingCartComplete
	});
}

function shoppingCartComplete(response){
	$($('shoppingDetailDiv')).innerHTML=response.responseText;
}

function updateShoppingCart(action, id, type){
	if(action=='editBox')
	{
		var v = $($('prodid_'+id)).value;
		if(v==''){
			document.shoppingCartForm.reset();
		}else{
			shoppingCartAction('edit', id, v, type);
		}
	}
	
	if(action=='removeItem')
	{
		shoppingCartAction('remove', id, 0, type);
	}
}

function shoppingCartAction(task, item, qty, type){
	var url = 'rw_ajax_manage_cart.php';
	var params = {task:task, item:item, qty:qty, type:type};
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: shoppingCartActComplete
	});
}

function shoppingCartActComplete(response){
	var v=response.responseText;
	if(v){
		shoppingCart();
		topPanel();
	}
	else
	{
		alert('Error occurred.');
	}
}

function triggerVoucher(o){
	if(o.checked){
		var params = {check:'1'};
	}else{
		var params = {check:'0'};
	}
	var url = 'rw_ajax_trigger_voucher.php';
	var ajax = new Ajax.Request(url, {
	method: 'get',
	parameters: params,
	onFailure: ajaxFailure,
	onComplete: triggerVoucherComplete
	});
}

function triggerVoucherComplete(response){
	shoppingCart();
}

// checkout payment gate way
function checkOutCart(){
	var returnMessage = '';
	var errorFound = false;
	
	if($($('cartItem')).value == '1'){
		if($($('name')).value == '') {
			returnMessage += 'Please fill in Recipient\'s name.\n';
			errorFound = true;
		}
		
		if($($('contactno')).value == '') {
			returnMessage += 'Please fill in Recipient\'s contact number.\n';
			errorFound = true;
		}
		
		if($($('contactno')).value.length < 8) {
			returnMessage += 'Please fill in at least 8 digits for Recipient\'s contact number.\n';
			errorFound = true;
		}
		
		if (isNaN($($('contactno')).value)) {
			returnMessage += 'Please fill in only numbers for Recipient\'s contact number.\n';
			errorFound = true;
		}
		
		if($($('address')).value == '') {
			returnMessage += 'Please fill in Recipient\'s address.\n';
			errorFound = true;
		}
		
		if(!$($('termsAndConditions')).checked){
			returnMessage += 'Please read and agree to the terms and conditions of delivery\nbefore proceeding with your purchase.\n';
			errorFound = true;
		}
		
		if (!errorFound) {
			$($('deliveryProfile')).submit();
		}
		else {
			alert (returnMessage);	
		}
	}else{
		alert('Your shopping cart is empty, you cannot check out.');
	}
}

function sendOrder(item, qty, type){
	var answer = confirm ("This product is currently out of stock. A notification of your pre-order request will be sent to you and Platinum Reserve. As soon as the product is available, Platinum Reserve will contact you.")
	if (answer){
		var url = 'rw_ajax_send_order.php';
		var params = {item:item, qty:qty, type:type};
		var ajax = new Ajax.Request(url, {
			method: 'get',
			parameters: params,
			onFailure: ajaxFailure,
			onComplete: sendOrderComplete
		});
	}	
}

function sendOrderComplete(response){
	var v = response.responseText;
	var a = v.split('::');
	if(a[0]=='1'){
		alert(a[1]);
	}else if(a[0]=='2') {
		mf_Lightbox.showBoxByAJAX('rw_login_register.php', 350, 490);
	}else{
		alert('Error occurred');
	}
}