//-------------------------------------------------------------

currentPhotoId = "";
currentPhotoTitle = "";
cartIconTimer = null;

//-------------------------------------------------------------

function chkParent(id){
	var chk = document.getElementById("chk"+id);
	var el = document.getElementById("qty"+id);
	
	if(el && chk){
		if(el.value == "" || el.value == 0){
			chk.checked = false;
			el.value = "";
		}
		else {
			chk.checked = true;
		}
		
		updateOrderTotal();
	}
}

//-------------------------------------------------------------

function clearOrder(){
	var tbl = document.getElementById("orderTbl");
	
	if(tbl){
		var inpts = tbl.getElementsByTagName("input");
		for(var i=0; i<inpts.length; i++){
			if(inpts[i].type == "checkbox"){
				inpts[i].checked = false;
			}
			else if (inpts[i].type == "text") {
				inpts[i].value = "";
			}
		}
	}
	
	updateOrderTotal();
	add2cart();
}

//-------------------------------------------------------------

function displayLargeImage(obj){
	fadeOutThumbs();
	//document.body.style.overflow = "auto";
	if(obj && obj.responseText){
		
		parts = obj.responseText.split("|");
		currentPhotoId = pid = parts[0]; 
		pw	= parts[1];
		ph	= parts[2];
		//var sizes = getPageSizeWithScroll();
		var sizes = [746,600];
		
		var dv = document.createElement("div");
				dv.id = "imgLargeView";
				dv.style.left = (parseInt(sizes[0]/2)-parseInt(pw/2)) + "px";
				//if(ph < parts[1]){
				dv.style.top = "0px"; //(parseInt(sizes[1]/2)-parseInt(ph/2)) + "px";
				//}
				//else {
				//	dv.style.top = "10px";
				//}
				dv.style.width = pw+"px";
				dv.style.minHeight = ph+"px";
				
				var str = "";
						str += "<img src='"+ sl +"_getImage.php?img="+pid+".jpg&w="+pw+"&h="+ph+"' width='"+ pw +"' height='"+ ph +"' onclick='fadeInThumbs();removeLargeImage()' />";

				if(currentPhotoTitle != ""){
						str += "<div class='photoTitle'>"+ currentPhotoTitle +"</div>";
				}
				
				if(allowPurchase){
						str += "<div class='orderOptions'>";
						str += "<div id='orderOptionsToggle' class='toggleOrderOptions'><a href='javascript:toggleOrderOptions()' class='up'>Show ordering options</a></div>";
						str += "<div id='orderOptionsDisplay'>";
						str += "<form action='#' method='post' onsubmit='return false'>";
						str += "<table border='0' cellpadding='0' cellspacing='0' id='orderTbl'>";
						str += "<thead><tr><td>Size</td><td>Qty</td><td>Size</td><td>Qty</td></tr></thead>";
						str += "<tbody><tr>";
						var c = 0;
						for(price in prices){
							if(!isNaN(parseFloat(prices[price]))){
								str += "<td><input type='checkbox' name='chk"+ price +"' id='chk"+ price +"' value='"+ prices[price] +"' onclick='updateOrderQty(\""+price+"\")' /> "+ price +" ($"+ parseFloat(prices[price]) +")</td>" ;
								str += "<td><input type='text' name='qty"+ price +"' id='qty"+ price +"' value='' maxlength='2' size='2' class='intonly' onblur='chkParent(\""+price+"\")' /></td>";
								if(c%2 != 0){
									str += "</tr><tr>";
								}
							}
							c++;
						}
						str += "</tr></tbody>";
						str += "<tfoot>";
						str += "<tr><td>Total</td><td id='orderTotal' colspan='3'>$0.00</td></tr>";
						str += "<tr><td class='orderButtons' colspan='4'><input type='button' value='Add to order' onclick='add2cart()' />";
						//<input type='button' value='Clear' onclick='clearOrder()' />
						str += "</td></tr>";
						str += "</tfoot>";
						str += "</table>";
						str += "</form>";
						str += "</div>";
						str += "</div>";
				}
				
				dv.innerHTML = str;
		
		document.getElementById("photoBank").appendChild(dv);
		intOnly();
	}
}

//-------------------------------------------------------------

function fadeInThumbs(){
	var thmbs = document.getElementsByClassName("thumb", document.getElementById("photoBank"));
	for(var i=0; i<thmbs.length; i++){
		new Effect.Opacity(thmbs[i].id, {duration:0.5, from:0.5, to:1});
	}
}

//-------------------------------------------------------------

function fadeOutThumbs(){
	var thmbs = document.getElementsByClassName("thumb", document.getElementById("photoBank"));
	for(var i=0; i<thmbs.length; i++){
		new Effect.Opacity(thmbs[i].id, {duration:0.5, from:1.0, to:0.5});
	}
}

//-------------------------------------------------------------

function getLargeImage(obj){
	removeLargeImage();
	if(obj && obj.id){
		currentPhotoTitle = obj.getAttribute("title");
		var pid = obj.id.replace(/^img/,"");
		//var sizes = getPageSizeWithScroll();
		var sizes = [746,600];
		
		
		var request = new ajaxObj();
		var xmlURL = sl+"admin/daemon.php";
		var requestComplete = displayLargeImage;
		
		request.connect(xmlURL, "GET", "cmd=showLargeImage&pid="+pid+"&w="+sizes[0]+"&h="+sizes[1] , requestComplete);
	}
}

//-------------------------------------------------------------

function hideCartIcon(){
	document.getElementById("mcart").className="";
}

//-------------------------------------------------------------

function resetCartIcon(){
	document.getElementById("mcart").className = "display";
}

//-------------------------------------------------------------

function hilightCartIcon(){
	clearTimeout(cartIconTimer);
	
	document.getElementById("mcart").className="hover";
	
	cartIconTimer = setTimeout(resetCartIcon,2000);
}

//-------------------------------------------------------------

function numOnly(){
	if(document.getElementsByTagName){
		var inpts = document.getElementsByTagName("input");
		for(var i=0; i<inpts.length; i++){
			if(inpts[i].className.indexOf("numonly") > -1){
				inpts[i].style.textAlign = "right";
				inpts[i].onfocus = function(){
					var re = /[^0-9\.]/g;
					this.value = this.value.replace(re,"");
					this.select();
				}
				inpts[i].onkeyup = inpts[i].onblur = function(){
					var re = /[^0-9\.]/g;
					this.value = this.value.replace(re,"");
				}
			}
		}
	}
}

function intOnly(){
	if(document.getElementsByTagName){
		var inpts = document.getElementsByTagName("input");
		for(var i=0; i<inpts.length; i++){
			if(inpts[i].className.indexOf("intonly") > -1){
				inpts[i].style.textAlign = "right";
				inpts[i].onfocus = function(){
					var re = /[^0-9]/g;
					this.value = this.value.replace(re,"");
					this.select();
				}
				inpts[i].onkeyup = function(){
					var re = /[^0-9]/g;
					this.value = this.value.replace(re,"");
				}
			}
		}
	}
}

//-------------------------------------------------------------

function removeLargeImage(){
	var mimg = document.getElementById("imgLargeView");
	if(mimg){
		document.getElementById("photoBank").removeChild(mimg);
	}
	//fadeInThumbs();
}

//-------------------------------------------------------------


function toggleOrderOptions(bool){
	vBool = null;
	if(arguments.length > 0)
		var vBool = arguments[0];
		
	var oTgl = document.getElementById("orderOptionsToggle");
	var oOpt = document.getElementById("orderOptionsDisplay");
	
	var as = oTgl.getElementsByTagName("a");
	var anch = as[0];
	
	// Show/Hide the options
	oOpt.style.display = (anch.className == "up")?"block":"none";
	
	// Change the toggle bar
	anch.innerHTML = (anch.className == "up")?"Hide ordering options":"Show ordering options";
	anch.className = (anch.className == "up")?"down":"up";
	
	if(vBool == false){
		// Show/Hide the options
		oOpt.style.display = "none";
		
		// Change the toggle bar
		anch.innerHTML = "Show ordering options";
		anch.className = "up";
	}
}

//-------------------------------------------------------------


function updateOrderQty(id){
	var chk = document.getElementById("chk"+id);
	var el = document.getElementById("qty"+id);
	
	if(el && chk){
		if(chk.checked){
			if(el.value == 0 || el.value == ""){
				el.value = 1;
			}
		}
		else {
			el.value = "";
		}
		
		updateOrderTotal();
	}
}

//-------------------------------------------------------------

function updateOrderTotal(){
	var tbl = document.getElementById("orderTbl");
	var newTotal = 0;
	
	if(tbl){
		var inpts = tbl.getElementsByTagName("input");
		for(var i=0; i<inpts.length; i++){
			if(inpts[i].type == "checkbox" && inpts[i].checked){
				var id = inpts[i].id.replace("chk","");
				var price = inpts[i].value;
				var qty = document.getElementById("qty"+id).value;
				
				newTotal += price * qty;
			}
		}
	}
	
	document.getElementById("orderTotal").innerHTML = "$"+ parseFloat(newTotal);
}

//-------------------------------------------------------------
