	/**
 * --------------------------------------------------------------------
 * Wedding package selector totaliser
 * by Ron Johnson
 *                http://dedgud.com
 *
 * Copyright (c) 2009 Ron Johnson
 * Version: 1.0, 14.09.2009
 * Changelog:
 * 	14.09.2009 initial Version 1.0
 *  14.01.2010 added ipod touch - 8gb, 32gb and 64gb
 * --------------------------------------------------------------------
 */

// Global variables
cookie_name = "Photografi-WeddingPackages";
cookie_silver = "";
cookie_pearl = "";
cookie_ruby = "";
cookie_gold = "";
cookie_sapphire = "";
cookie_diamond = "";

var prices = new Array();
prices["photos-250"]=500;
prices["photos-all"]=600;
prices["art-bw"]=15;
prices["art-sep"]=15;
prices["art-spot"]=15;
prices["art-spot-extras"]=15;
prices["art-sfx"]=15;
prices["art-sfx-extras"]=15;
prices["art-hdr"]=15;
prices["art-hdr-extras"]=15;
prices["pr-8x6"]=5;
prices["pr-8x6-extras"]=5;
prices["pr-10x8"]=10;
prices["pr-10x8-extras"]=10;
prices["pr-10x12"]=15;
prices["pr-10x12-extras"]=15;
prices["canv-12x12"]=50;
prices["canv-12x12-extras"]=40;
prices["canv-16x16"]=70;
prices["canv-16x16-extras"]=60;
prices["canv-20x20"]=85;
prices["canv-20x20-extras"]=75;
prices["canv-24x24"]=105;
prices["canv-24x24-extras"]=90;
prices["canv-32x32"]=120;
prices["canv-32x32-extras"]=105;
prices["canv-12x16"]=70;
prices["canv-12x16-extras"]=60;
prices["canv-16x20"]=75;
prices["canv-16x20-extras"]=65;
prices["canv-20x24"]=85;
prices["canv-20x24-extras"]=75;
prices["canv-20x32"]=95;
prices["canv-20x32-extras"]=80;
prices["canv-24x38"]=130;
prices["canv-24x38-extras"]=110;
prices["canv-12x24"]=75;
prices["canv-12x24-extras"]=65;
prices["canv-16x32"]=95;
prices["canv-16x32-extras"]=80;
prices["canv-20x40"]=120;
prices["canv-20x40-extras"]=105;
prices["bk-hd-7x7"]=80;
prices["bk-hd-7x7-extras"]=40;
prices["bk-hd-8x10"]=90;
prices["bk-hd-8x10-extras"]=45;
prices["bk-hd-10x8"]=90;
prices["bk-hd-10x8-extras"]=45;
prices["bk-hd-13x11"]=110;
prices["bk-hd-13x11-extras"]=50;
prices["bk-hd-12x12"]=120;
prices["bk-hd-12x12-extras"]=55;
prices["bk-sf-7x7"]=50;
prices["bk-sf-7x7-extras"]=25;
prices["bk-sf-8x10"]=70;
prices["bk-sf-8x10-extras"]=35;
prices["bk-sf-10x8"]=70;
prices["bk-sf-10x8-extras"]=35;
prices["cal-1p"]=30;
prices["cal-1p-extras"]=25;
prices["cal-2p"]=35;
prices["cal-2p-extras"]=25;
prices["dvd"]=65;
prices["dvd-extras"]=10;
prices["dvd-ipod"]=5;
prices["dvd-ipod-extras"]=0;
prices["8gb"]=225;
prices["8gb-extras"]=225;
prices["32gb"]=299;
prices["32gb-extras"]=299;
prices["64gb"]=375;
prices["64gb-extras"]=375;


var minQty = new Array()
minQty["si-art-bw"]=0;
minQty["si-art-sep"]=0;
minQty["si-art-spot"]=0;
minQty["si-art-sfx"]=0;
minQty["si-art-hdr"]=0;
minQty["si-pr-8x6"]=0;
minQty["si-pr-10x8"]=0;
minQty["si-pr-10x12"]=0;
minQty["si-canv-12x12"]=0;
minQty["si-canv-16x16"]=0;
minQty["si-canv-20x20"]=0;
minQty["si-canv-24x24"]=0;
minQty["si-canv-32x32"]=0;
minQty["si-canv-12x16"]=0;
minQty["si-canv-16x20"]=0;
minQty["si-canv-20x24"]=0;
minQty["si-canv-20x32"]=0;
minQty["si-canv-24x38"]=0;
minQty["si-canv-12x24"]=0;
minQty["si-canv-16x32"]=0;
minQty["si-canv-20x40"]=0;
minQty["si-bk-hd-7x7"]=0;
minQty["si-bk-hd-8x10"]=0;
minQty["si-bk-hd-10x8"]=0;
minQty["si-bk-hd-13x11"]=0;
minQty["si-bk-hd-12x12"]=0;
minQty["si-bk-sf-7x7"]=0;
minQty["si-bk-sf-8x10"]=0;
minQty["si-bk-sf-10x8"]=0;
minQty["si-cal-1p"]=0;
minQty["si-cal-2p"]=0;
minQty["si-dvd"]=0;
minQty["si-dvd-ipod"]=1;
minQty["si-8gb"]=0;
minQty["si-32gb"]=0;
minQty["si-64gb"]=0;

minQty["pe-art-bw"]=0;
minQty["pe-art-sep"]=0;
minQty["pe-art-spot"]=0;
minQty["pe-art-sfx"]=0;
minQty["pe-art-hdr"]=0;
minQty["pe-pr-8x6"]=0;
minQty["pe-pr-10x8"]=0;
minQty["pe-pr-10x12"]=0;
minQty["pe-canv-12x12"]=0;
minQty["pe-canv-16x16"]=0;
minQty["pe-canv-20x20"]=0;
minQty["pe-canv-24x24"]=0;
minQty["pe-canv-32x32"]=0;
minQty["pe-bk-hd-7x7"]=1;
minQty["pe-bk-hd-8x10"]=0;
minQty["pe-bk-hd-10x8"]=0;
minQty["pe-bk-hd-13x11"]=0;
minQty["pe-bk-hd-12x12"]=0;
minQty["pe-bk-sf-7x7"]=0;
minQty["pe-bk-sf-8x10"]=0;
minQty["pe-bk-sf-10x8"]=0;
minQty["pe-cal-1p"]=1;
minQty["pe-cal-2p"]=0;
minQty["pe-dvd"]=0;
minQty["pe-dvd-ipod"]=1;
minQty["pe-8gb"]=0;
minQty["pe-32gb"]=0;
minQty["pe-64gb"]=0;

minQty["ru-art-bw"]=0;
minQty["ru-art-sep"]=0;
minQty["ru-art-spot"]=1;
minQty["ru-art-sfx"]=0;
minQty["ru-art-hdr"]=0;
minQty["ru-pr-8x6"]=0;
minQty["ru-pr-10x8"]=0;
minQty["ru-pr-10x12"]=0;
minQty["ru-canv-12x12"]=1;
minQty["ru-canv-16x16"]=0;
minQty["ru-canv-20x20"]=0;
minQty["ru-canv-24x24"]=0;
minQty["ru-canv-32x32"]=0;
minQty["ru-canv-12x16"]=0;
minQty["ru-canv-16x20"]=0;
minQty["ru-canv-20x24"]=0;
minQty["ru-canv-20x32"]=0;
minQty["ru-canv-24x38"]=0;
minQty["ru-canv-12x24"]=0;
minQty["ru-canv-16x32"]=0;
minQty["ru-canv-20x40"]=0;
minQty["ru-bk-hd-7x7"]=0;
minQty["ru-bk-hd-8x10"]=0;
minQty["ru-bk-hd-10x8"]=0;
minQty["ru-bk-hd-13x11"]=0;
minQty["ru-bk-hd-12x12"]=0;
minQty["ru-bk-sf-7x7"]=0;
minQty["ru-bk-sf-8x10"]=1;
minQty["ru-bk-sf-10x8"]=0;
minQty["ru-cal-1p"]=0;
minQty["ru-cal-2p"]=0;
minQty["ru-dvd"]=1;
minQty["ru-dvd-ipod"]=1;
minQty["ru-8gb"]=0;
minQty["ru-32gb"]=0;
minQty["ru-64gb"]=0;


minQty["go-art-bw"]=0;
minQty["go-art-sep"]=0;
minQty["go-art-spot"]=1;
minQty["go-art-sfx"]=0;
minQty["go-art-hdr"]=0;
minQty["go-pr-8x6"]=0;
minQty["go-pr-10x8"]=0;
minQty["go-pr-10x12"]=0;
minQty["go-canv-12x12"]=1;
minQty["go-canv-16x16"]=0;
minQty["go-canv-20x20"]=0;
minQty["go-canv-24x24"]=0;
minQty["go-canv-32x32"]=0;
minQty["go-canv-12x16"]=0;
minQty["go-canv-16x20"]=0;
minQty["go-canv-20x24"]=0;
minQty["go-canv-20x32"]=0;
minQty["go-canv-24x38"]=0;
minQty["go-canv-12x24"]=0;
minQty["go-canv-16x32"]=0;
minQty["go-canv-20x40"]=0;
minQty["go-bk-hd-7x7"]=0;
minQty["go-bk-hd-8x10"]=0;
minQty["go-bk-hd-10x8"]=0;
minQty["go-bk-hd-13x11"]=0;
minQty["go-bk-hd-12x12"]=0;
minQty["go-bk-sf-7x7"]=1;
minQty["go-bk-sf-8x10"]=0;
minQty["go-bk-sf-10x8"]=0;
minQty["go-cal-1p"]=1;
minQty["go-cal-2p"]=0;
minQty["go-dvd"]=1;
minQty["go-dvd-ipod"]=1;
minQty["go-8gb"]=0;
minQty["go-32gb"]=0;
minQty["go-64gb"]=0;


minQty["sa-art-bw"]=0;
minQty["sa-art-sep"]=0;
minQty["sa-art-spot"]=1;
minQty["sa-art-sfx"]=0;
minQty["sa-art-hdr"]=0;
minQty["sa-pr-8x6"]=0;
minQty["sa-pr-10x8"]=0;
minQty["sa-pr-10x12"]=0;
minQty["sa-canv-12x12"]=0;
minQty["sa-canv-16x16"]=0;
minQty["sa-canv-20x20"]=0;
minQty["sa-canv-24x24"]=0;
minQty["sa-canv-32x32"]=0;
minQty["sa-canv-12x16"]=0;
minQty["sa-canv-16x20"]=0;
minQty["sa-canv-20x24"]=1;
minQty["sa-canv-20x32"]=0;
minQty["sa-canv-24x38"]=0;
minQty["sa-canv-12x24"]=0;
minQty["sa-canv-16x32"]=0;
minQty["sa-canv-20x40"]=0;
minQty["sa-bk-hd-7x7"]=0;
minQty["sa-bk-hd-8x10"]=0;
minQty["sa-bk-hd-10x8"]=0;
minQty["sa-bk-hd-13x11"]=1;
minQty["sa-bk-hd-12x12"]=0;
minQty["sa-bk-sf-7x7"]=1;
minQty["sa-bk-sf-8x10"]=0;
minQty["sa-bk-sf-10x8"]=0;
minQty["sa-cal-1p"]=1;
minQty["sa-cal-2p"]=0;
minQty["sa-dvd"]=0;
minQty["sa-dvd-ipod"]=1;
minQty["sa-8gb"]=0;
minQty["sa-32gb"]=0;
minQty["sa-64gb"]=0;


minQty["di-art-bw"]=0;
minQty["di-art-sep"]=0;
minQty["di-art-spot"]=1;
minQty["di-art-sfx"]=0;
minQty["di-art-hdr"]=0;
minQty["di-pr-8x6"]=0;
minQty["di-pr-10x8"]=0;
minQty["di-pr-10x12"]=0;
minQty["di-canv-12x12"]=1;
minQty["di-canv-16x16"]=0;
minQty["di-canv-20x20"]=0;
minQty["di-canv-24x24"]=0;
minQty["di-canv-32x32"]=0;
minQty["di-canv-12x16"]=0;
minQty["di-canv-16x20"]=0;
minQty["di-canv-20x24"]=1;
minQty["di-canv-20x32"]=0;
minQty["di-canv-24x38"]=0;
minQty["di-canv-12x24"]=0;
minQty["di-canv-16x32"]=0;
minQty["di-canv-20x40"]=0;
minQty["di-bk-hd-7x7"]=0;
minQty["di-bk-hd-8x10"]=0;
minQty["di-bk-hd-10x8"]=0;
minQty["di-bk-hd-13x11"]=0;
minQty["di-bk-hd-12x12"]=1;
minQty["di-bk-sf-7x7"]=0;
minQty["di-bk-sf-8x10"]=0;
minQty["di-bk-sf-10x8"]=1;
minQty["di-cal-1p"]=0;
minQty["di-cal-2p"]=0;
minQty["di-dvd"]=1;
minQty["di-dvd-ipod"]=1;
minQty["di-8gb"]=1;
minQty["di-32gb"]=0;
minQty["di-64gb"]=0;


var qtyPrev = 0;	// needs to be global variable, set in 1 function and used in another

function changeTotal(inputRef) {
	// Extract package name
	var id=inputRef.id;
	var posDash=id.search(/-/)
	var package=id.substr(0,posDash);
	var product=id.substr(posDash+1,(id.length)-posDash+1);
	
	//alert("package="+package+"\nproduct="+product);
	
	var checkboxId = "";
	var qtyId = "";

//alert("checkboxId.checked="+checkboxId.checked);		
//alert("product="+product);	
	// what type of field?
	if (product=="photos-all" || product=="photos-250" || product=="art-bw"|| product=="art-sep" || product=="dvd-ipod") {
		// product has no qty
	}	else {
		var qtyField = false;
		if (id.substr(id.length-4,4)=="-qty") {
			qtyField = true;
			product=id.substr(posDash+1,(id.length)-posDash-5);
//alert("prod="+product);
			checkboxId = document.getElementById(package+"-"+product);
//alert("checkbox="+checkboxId.value);
			qtyId = inputRef;
//alert("qtyId="+qtyId.value);
			// check for integer only
			if (isBlank(qtyId.value)) { qtyId.value=0};
			if (!isInteger(qtyId.value)) {
				// Check for minimum qty else set to 1
				if (minQty[package+"-"+product] > 0) {
					qtyId.value = minQty[package+"-"+product];
				} else {
					qtyId.value = 1;
				}
				alert("--------------------------------------\n Whole numbers only please.\n\n Setting qty to "+qtyId.value+"\n--------------------------------------");
			}

		} else {
			// isn't a qty field
			//product=id.substr(posDash+1,(id.length)-posDash+1);
			checkboxId = inputRef;
			qtyId = document.getElementById(package+"-"+product+"-qty");
		}
				
		// If checkbox is disabled don't allow to go less than minimum qty
		if (qtyField && checkboxId.disabled){
			if (Number(qtyId.value) < minQty[package+"-"+product]) {
				switch (package) {
					case "si": packageFull="Silver";break;
					case "pe": packageFull="Pearl";break;
					case "ru": packageFull="Ruby";break;
					case "go": packageFull="Gold";break;
					case "sa": packageFull="Sapphire";break;
					case "di": packageFull="Diamond";break;
				}
				alert ("---------------------------------------------\n Sorry, the "+packageFull.charAt(0).toUpperCase() + packageFull.substr(1).toLowerCase()+" package must contain at least "+minQty[package+"-"+product]+"\n---------------------------------------------");
				qtyId.value = minQty[package+"-"+product];
			}
			
		}
		
		// If checkbox wasn't prev selected then init the qty to 1
		if (checkboxId.checked && !qtyField) {
			if (qtyId.value == "") {
				qtyId.value=1;
			}
		}
		// if entering a qty and checkbox isn't already checked then check it
		if (qtyField && !checkboxId.checked) {
			document.getElementById(package+"-"+product).checked=true;
			qtyPrev = 0;
		}
		// if clearing the qty field then uncheck the checkbox
		if (qtyField && checkboxId.checked){
			if (qtyId.value==0 || qtyId.value=="" || qtyId.value.charAt(0)=='' || qtyId.value==null){
				checkboxId.checked=false;
				qtyId.value="";
			}
		}
		// if unchecking checkbox then zap qty
		if (!checkboxId.checked && !qtyField) {
			qtyPrev = qtyId.value;
			qtyId.value = "";
		}
	}
	
	var total = document.getElementById(package+"-total").innerHTML
	var total = Number(total.substr(1,total.length));
	
	// Update the total package price
	switch (product) {
			// Is this the Photos product group - special case cos it's a radio option
		case "photos-250":
			total -= prices["photos-all"];
			total += prices["photos-250"];
			break;
		case "photos-all":
			total -= prices["photos-250"];
			total += prices["photos-all"];
			break;
		case "dvd-ipod":
			if (inputRef.checked) {
				total += prices["dvd-ipod"];
			} else {
				total -= prices["dvd-ipod"];
			}
			break;
		case "art-bw":
		case "art-sep":
			if (inputRef.checked) {
				total += prices[product];
			} else {
				total -= prices[product];
			}	
			break;
		default:
			// process everything else which uses qtys
//alert("qtyId.value="+qtyId.value);
//alert("checkboxId.checked="+checkboxId.checked);
//alert("qtyPrev="+qtyPrev);
			if (qtyField && checkboxId.checked) {
				if (qtyPrev>1) {
					qtyTmp = qtyPrev;
					total -= prices[product];	// subtract 1st full price
					qtyTmp -= 1;
					total -= qtyTmp*prices[product+"-extras"];  // subtract extra copies prices
				} else {
					total -= qtyPrev*prices[product];
				}
				if (Number(qtyId.value)>1) {
					qtyTmp = Number(qtyId.value);
					total += prices[product];	// add 1st full price
					qtyTmp -= 1;
					total += qtyTmp*prices[product+"-extras"];  // add extra copies prices
				} else {
					total += Number(qtyId.value)*prices[product];
				}
			} else {
					if (checkboxId.checked) {
						if (Number(qtyId.value)>1) {
							qtyTmp = Number(qtyId.value);
							total += prices[product];	// add 1st full price
							qtyTmp -= 1;
							total += qtyTmp*prices[product+"-extras"];  // add extra copies prices
						} else {
							total += qtyId.value*prices[product];
						}
					} else {
						if (qtyId.value=="") {
							if (qtyPrev>1) {
								qtyTmp = qtyPrev;
								total -= prices[product];	// subtract 1st full price
								qtyTmp -= 1;
								total -= qtyTmp*prices[product+"-extras"];  // subtract extra copies prices
							} else {
								total -= qtyPrev*prices[product];
							}
						} else {
							if (Number(qtyId.value)>1) {
								qtyTmp = Number(qtyId.value);
								total -= prices[product];	// subtract 1st full price
								qtyTmp -= 1;
								total -= qtyTmp*prices[product+"-extras"];  // subtract extra copies prices
							} else {
								total -= qtyId.value*prices[product];
							}
						}
					}
			}
			qtyPrev = qtyId.value;
	}
	
	document.getElementById(package+"-total").innerHTML = "£"+total;
}

function setQtyPrev(qtyRef) {
	qtyPrev = Number(qtyRef.value);
}

function saveCookie() {
	if(document.cookie != document.cookie) {
		index = document.cookie.indexOf(cookie_name);
	} else {
		index = -1;
	}
	
	if (index == -1) {

	var node_list = document.getElementsByTagName('input');
//for (var i = 0; i < 2; i++) {
	for (var i = 0; i < node_list.length; i++) {
		node = node_list[i];
		
		var posDash=node.id.search(/-/)
		var package=node.id.substr(0,posDash);
		switch (package) {
			case "si":
				cookie_silver += node.id + "," + node.value + ","
				break;
			case "pe":
				cookie_pearl += node.id + "," + node.value + ","
				break;
			case "ru":
				cookie_ruby += node.id + "," + node.value + ","
				break;
			case "go":
				cookie_gold += node.id + "," + node.value + ","
				break;
			case "sa":
				cookie_sapphire += node.id + "," + node.value + ","
				break;
			case "di":
				cookie_diamond += node.id + "," + node.value + ","
		}
			
	} 
	cookie_silver = cookie_silver.substring(0,cookie_silver.length-1);		// remove final ','
	cookie_pearl = cookie_pearl.substring(0,cookie_pearl.length-1);		// remove final ','
	cookie_ruby = cookie_ruby.substring(0,cookie_ruby.length-1);		// remove final ','
	cookie_gold = cookie_gold.substring(0,cookie_gold.length-1);		// remove final ','
	cookie_sapphire = cookie_sapphire.substring(0,cookie_sapphire.length-1);		// remove final ','
	cookie_diamond = cookie_diamond.substring(0,cookie_diamond.length-1);		// remove final ','

	var exdate=new Date();
	exdate.setDate(exdate.getDate()+365);
	
	document.cookie=cookie_name+"-silver="+cookie_silver+";expires="+exdate.toGMTString();
	document.cookie=cookie_name+"-pearl="+cookie_pearl+";expires="+exdate.toGMTString();
	document.cookie=cookie_name+"-ruby="+cookie_ruby+";expires="+exdate.toGMTString();
	document.cookie=cookie_name+"-gold="+cookie_gold+";expires="+exdate.toGMTString();
	document.cookie=cookie_name+"-sapphire="+cookie_sapphire+";expires="+exdate.toGMTString();
	document.cookie=cookie_name+"-diamond="+cookie_diamond+";expires="+exdate.toGMTString();
	}	
	alert("------------------------------\n        Package combos saved.\n------------------------------");
}

function getCookie(c_name) {
//	alert("document.cookie.length="+document.cookie.length);	
	if (document.cookie.length>0)
  {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1)
    {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
    }
  }
	return "";
}

function checkCookie() {
	cookie_silver=getCookie(cookie_name-"silver");
	
	if (cookie_silver!=null && cookie_silver!="")
  {
		restore_cookies=confirm("----------------------------------------------\n\nHi!\nLooks like you stored some package combos from a previous visit.\n\nWould you like to use your stored wedding packages?\n\n----------------------------------------------");
		if (restore_cookies)
    {
			// retrieve cookies
    }
  }
 }

//-------------------------------------------------------------------
// isNull(value)
//   Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	}
	return true;
}

//-------------------------------------------------------------------
// isInteger(value)
//   Returns true if value contains all digits
//-------------------------------------------------------------------
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
	}
	return true;
}

//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){return(parseFloat(val,10)==(val*1));}

//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
}

