function validateEmail(vEmail, vEmailValue) {
var err = 0;
if (vEmailValue=='') return true;
var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
for (i=0; i<invalidChars.length; i++) {
   if (vEmailValue.indexOf(invalidChars.charAt(i),0) > -1) err = 1;
}
for (i=0; i<vEmailValue.length; i++) {
   if (vEmailValue.charCodeAt(i)>127) err = 1;
}

var atPos = vEmailValue.indexOf('@',0);
if (atPos == -1) err = 1;
if (atPos == 0)  err = 1;
if (vEmailValue.indexOf('@', atPos + 1) > - 1)  err = 1;
if (vEmailValue.indexOf('.', atPos) == -1)  err = 1;
if (vEmailValue.indexOf('@.',0) != -1)  err = 1;
if (vEmailValue.indexOf('.@',0) != -1)  err = 1;
if (vEmailValue.indexOf('..',0) != -1)  err = 1;
var suffix = vEmailValue.substring(vEmailValue.lastIndexOf('.')+1);
if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum')  err = 1;
if(err)
	{
	alert("Email address in invalid");
	globalvar = vEmail;
	setTimeout("globalvar.focus()",250);
	return true;
	}
return true;
}

function MobilePhoneFormat(vPhone, vPhoneValue) {
	document.getElementById(vPhone.id+'_error').style.display = 'none';
   s = vPhoneValue;
   p = "";
   var i;
   for (i = 0; i < s.length; i++)
   	 {
     // Check that current character is number.
     var c = s.charAt(i);
     if (((c >= "0") && (c <= "9"))) p += c;
    }
	r = p.substring(0,4);
	if(p.length>4) r +=" "+p.substring(4,7);
	if(p.length>7) r +=" "+p.substring(7,s.length);
	vPhone.value = r;
   if(r.length==1&&r.substring(0,1)!="0") {
   		vPhone.value = "";
		document.getElementById(vPhone.id+'_error').innerHTML = 'All mobile numbers must begin with \'04\'.';
		document.getElementById(vPhone.id+'_error').style.display = 'block';
   }
   if(r.length==2&&r.substring(0,2)!="04") {
   		vPhone.value = "0";
		document.getElementById(vPhone.id+'_error').innerHTML = 'All mobile numbers must begin with \'04\'.';
		document.getElementById(vPhone.id+'_error').style.display = 'block';
   }
	return true;
	}

function MobilePhoneValidate(vPhone, vPhoneValue){
   s = vPhoneValue;
	if(s=="") return true;
   if(s.length!=12)
   	{
	alert("Mobile phone numbers must contain 10 digits");
	globalvar = vPhone;
	globalvar.value = '';
	setTimeout("globalvar.focus()",250);
	return false;
	}
   if(s.substring(0,2)!="04")
   	{
	alert("Mobile phone numbers must start with 04");
	globalvar = vPhone;
	globalvar.value = '';
	setTimeout("globalvar.focus()",250);
	return false;
	}
	return true;
	}

function PhoneFormat(vPhone, vPhoneValue){
	document.getElementById(vPhone.id+'_error').style.display = 'none';
   s = vPhoneValue;
   p = "";
   var i;
   for (i = 0; i < s.length; i++)
   	 {
     // Check that current character is number.
     var c = s.charAt(i);
     if (((c >= "0") && (c <= "9"))) p += c;
    }
	if(p.substring(0,1)=='1') { //1300 number
		r = p.substring(0,4);
		if(p.length>4) r +=" "+p.substring(4,6);
		if(p.length>6) r +=" "+p.substring(6,8);
		if(p.length>8) r +=" "+p.substring(8,s.length);
		}
	else {
		r = p.substring(0,2);
		if(p.length>2) r +=" "+p.substring(2,6);
		if(p.length>6) r +=" "+p.substring(6,s.length);
		}
	vPhone.value = r;
   if(r.length==1&&r.substring(0,1)!="0"&&r.substring(0,1)!="1") {
   		vPhone.value = "";
		document.getElementById(vPhone.id+'_error').innerHTML = 'All phone numbers must begin with a valid area code.';
		document.getElementById(vPhone.id+'_error').style.display = 'block';
   }
   if(r.length==2&&(r.substring(0,2)!="13"&&r.substring(0,2)!="02"&&r.substring(0,2)!="03"&&r.substring(0,2)!="07"&&r.substring(0,2)!="08")) {
   		vPhone.value = "0";
		document.getElementById(vPhone.id+'_error').innerHTML = 'All phone numbers must begin with a valid area code.';
		document.getElementById(vPhone.id+'_error').style.display = 'block';
   }
	return true;
	}

function PhoneValidate(vPhone, vPhoneValue, vPhoneID){
   s = vPhoneValue;
	if(s=="") return true;
   if(s.length<12)
   	{
	alert("Phone/Fax numbers must contain atleast 10 digits");
	globalvar = vPhone;
	setTimeout("globalvar.focus()",250);
	return false;
	}
   if(s.substring(0,2)!="13"&&s.substring(0,2)!="02"&&s.substring(0,2)!="03"&&s.substring(0,2)!="07"&&s.substring(0,2)!="08")
   	{
	alert("Phone/Fax numbers must start with a valid area code");
	globalvar = vPhone;
	setTimeout("globalvar.focus()",250);
	return false;
	}
	return true;
	}

function getHTTPObject() {
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
    }
    return false;
}

var http = getHTTPObject();

function updateBag(func,qty,styleID) {
	http.open("GET", "/includes/updateBag.php?func="+func+"&qty="+qty+"&styleID="+styleID, true);
	http.onreadystatechange = bagReturn;
	http.send(null);
}
function dumpSession() {
	http.open("GET", "https://www.paulahalldesigns.com.au/includes/updateBag.php?func=S", true);
	http.onreadystatechange = bagReturn;
	http.send(null);
}
function bagReturn() {
	if(http.readyState==4) {
		var textout = http.responseText.split("@#@");
		var func = textout[0];
		switch(func) {
			case 'A':
				var result = textout[1];
				var bag_desc = textout[2];
				var check_desc = textout[3];
				if(result=='Y') {
					document.getElementById('bag_successful_add').style.display = 'block';
					document.getElementById('my_bag_display').innerHTML = bag_desc;
					document.getElementById('checkout_display').innerHTML = check_desc;
					setTimeout("document.getElementById('bag_successful_add').style.display = 'none';",2500);
				} else {
					alert('An error has occured whilst trying to add this item to your bag.  Please try again, if the problem continues, please contact us and let us know.');
				}
			break;
			case 'U':
				var result = textout[1];
				var bag_desc = textout[2];
				var check_desc = textout[3];
				var styleID = textout[4];
				var row_qty = textout[5];
				var row_price = textout[6];
				var tot_price = textout[7];
				var page_title = textout[8];
				if(result=='Y') {
					document.getElementById('my_bag_display').innerHTML = bag_desc;
					document.getElementById('checkout_display').innerHTML = check_desc;
					document.getElementById('total_price['+styleID+']').innerHTML = '$'+row_price;
					document.getElementById('grand_total').innerHTML = '<b>$'+tot_price+'</b>';
					document.title = page_title;
				} else {
					alert('An error has occured whilst trying to update this item in your bag.  Please try again, if the problem continues, please contact us and let us know.');
				}
			break;
			case 'D':
				var result = textout[1];
				var bag_desc = textout[2];
				var check_desc = textout[3];
				var elements_remaining = textout[4];
				var styleID = textout[5];
				var page_title = textout[6];
				if(result=='Y') {
					document.getElementById('my_bag_display').innerHTML = bag_desc;
					document.getElementById('checkout_display').innerHTML = check_desc;
					if(elements_remaining=='Y') {
						var tr = document.getElementById('total_price['+styleID+']').parentNode;
						tr.parentNode.removeChild(tr);
					} else {
						window.location.reload();
					}
					document.title = page_title;
				} else {
					alert('An error has occured whilst trying to update this item in your bag.  Please try again, if the problem continues, please contact us and let us know.');
				}
			break;
			case 'S':
				window.location.reload();
			break;
			case 'V':
				var result = textout[1];
				var discount = textout[2];
				var grand_total = textout[3];
				var page_title = textout[4];
				if(result=='Y') {
					document.getElementById('voucher_code').style.border = '1px solid #A1D98C';
					document.getElementById('voucher_code').style.backgroundColor = '#E5F5E5';
                    document.getElementById('voucher_code').readOnly = true;
					document.getElementById('voucher_code').ondblclick = function() { clearVoucher(); }
					document.getElementById('voucher_amount').innerHTML = '$'+discount;
					document.getElementById('grand_total').innerHTML = '<b>$'+grand_total+'</b>';
					document.title = page_title;
				} else {
					document.getElementById('voucher_code').style.border = '1px solid #E96E56';
					document.getElementById('voucher_code').style.backgroundColor = '#FFE2DC';
					document.getElementById('voucher_code').ondblclick = '';
					document.getElementById('voucher_amount').innerHTML = '$0.00';
					document.getElementById('grand_total').innerHTML = '<b>$'+grand_total+'</b>';
					document.title = page_title;
				}
			break;
		}
	}
}

function validateVoucherCode(func,voucher_code,product_total) {
	http.open("GET", "/includes/updateBag.php?func="+func+"&voucher_code="+voucher_code+"&product_total="+product_total, true);
	http.onreadystatechange = bagReturn;
	http.send(null);
}

function clearVoucher() {
	document.getElementById('voucher_code').readOnly = false;
	document.getElementById('voucher_code').value = '';
	document.getElementById('voucher_amount').innerHTML = '$0.00';
	validateVoucherCode('V','',0);
}

function updateDeliveryTails(thisValue) {
	var details = thisValue.split("@#@");
	document.getElementById('delivery_name').value = details[0];
	document.getElementById('delivery_address_line1').value = details[1];
	document.getElementById('delivery_address_line2').value = details[2];
	document.getElementById('delivery_suburb').value = details[3];
	document.getElementById('delivery_state').value = details[4];
	document.getElementById('delivery_postcode').value = details[5];
}

var ie5 = (document.all && document.getElementById) ? true : false;
function numbersOnly(e,field_name) {
	if(ie5) var e = event;
	var target = document.getElementById(field_name);
	var strCheck = '8,9,13,17,18,19,20,27,33,34,35,36,37,38,39,40,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,91,92,93,95,96,97,98,99,100,101,102,103,104,105,112,113,114,115,116,117,118,119,120,121,122,123,144,145';
	if(strCheck.indexOf(e.keyCode)=='-1') {
		current = target.value;
		current = current.substr(0,(current.length - 1));
		target.value = current;
	}
}

function setRadioValue(name,crrntvalue) {
	var foundit = true;
	var t = 0;
	while(foundit) {
		if(document.getElementById(name+t)) {
        	if(crrntvalue==document.getElementById(name+t).value) document.getElementById(name+t).checked = true;
		} else foundit = false;
		t++;
	}
}

function getRadioValue(name) {
	var foundit = true;
	var returnvalue = '';
	var t = 0;
	while(foundit) {
		if(document.getElementById(name+t)) {
        	if(document.getElementById(name+t).checked==true) var returnvalue = document.getElementById(name+t).value;
		} else foundit = false;
		t++;
	}
	return returnvalue;
}

function returnKeyCode(e) {
	var keycode;
	if(window.event) keycode = window.event.keyCode;
	else if(e) keycode = e.which;
	else return true;
	return keycode;
}
function setSortAll(setVal,friendly) {
	http.open("GET", "/includes/updateBag.php?func=setSort&setVal="+setVal+"&friendly="+friendly, true);
	http.onreadystatechange = reloadPage;
	http.send(null);
}
function reloadPage() {
	if(http.readyState==4) {
		if(http.responseText=='Y') {
			window.location.reload()
		}
	}
}