// JavaScript Document


function onPageLoad(){
	setupZoom();
	//onLoadFunctionGenerateCategoryFiles();
}

function onLoadFunctionGenerateCategoryFiles(){
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/ajax/category_get_filescreated.asp");
	
	var Params = new Object();
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(categoryFilesCreated_dataHandler, Params);
	
}

function categoryFilesCreated_dataHandler(strReturn){
	var arr = eval(strReturn);
	if(arr[0] == 0){
		setInterval("categoryCreate()", 30000);
	}
}

function categoryCreate(){
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/ajax/category_create.asp");
	
	var Params = new Object();
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(null, Params);
	
}

function isNumeric(e){
	
	var k = RLdesign.Utils.DefineEventKeyCode(e);
	
	var returnCode = false;
	
	if(k == 8 || k == 9 || k == 13 || k == 46 || k == 110 || k == 188){
		returnCode = true;
	}
	
	if(k >= 35 && k <= 40){
		returnCode = true;	
	}
	
	if(k >= 48 && k <= 57){
		returnCode = true;
	}
	
	if(k >= 96 && k <= 105){
		returnCode = true;
	}
	
	
	return returnCode;
	
}

function checkPackageUnit(oInput, iPackageUnits){
	
	if(oInput.form.elements["basketedited"] != null){
		oInput.form.elements["basketedited"].value = "1";
	}
	
	var iQuantity = parseFloat(oInput.value.replace(",","."));
	iPackageUnits = parseFloat(iPackageUnits.toString().replace(",","."));
	
	var Check = 0;
	
	if(iPackageUnits > 0 && iQuantity > 0){
		
		Check = iQuantity % iPackageUnits;
		
		if(Check > 0){
			oInput.className = "redbackground";
			disablebuttons(oInput);
		}
		else if(Check == 0)
		{
			oInput.className = "text";
			enablebuttons(oInput);
		}
		else{
			oInput.className = "redbackground";
			disablebuttons(oInput);
		}
	}
	else{
		oInput.className = "text";
		enablebuttons(oInput);
	}
	
}

function disablebuttons(oInput){
	oForm = oInput;
	while(oForm.tagName.toLowerCase() != "form"){
		oForm = oForm.parentNode;
	}
	
	var inputs = oForm.getElementsByTagName("input");
	
	for(i = 0; i < inputs.length; i++){
		oElement = inputs[i];
		
		if(oElement.type === "submit" || oElement.type === "button"){
			oElement.disabled = true;
		}
		else if(oElement.className == "submit_button"){
			oElement.style.visibility = "hidden";
		}
	}
	
}

function enablebuttons(oInput){
	oForm = oInput;
	while(oForm.tagName.toLowerCase() != "form"){
		oForm = oForm.parentNode;
	}
	
	var inputs = oForm.getElementsByTagName("input");
	
	for(i = 0; i < inputs.length; i++){
		oElement = inputs[i];
		if(oElement.type === "submit" || oElement.type === "button"){
			oElement.disabled = false;
		}
		
		else if(oElement.className == "submit_button"){
			oElement.style.visibility = "visible";
		}
	}
	
}

function addbasket(oA,sVnr,iQuantity){
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/shop/basket_action.asp");
	
	var Params = new Object();
	Params["vnr"] = sVnr;
	Params["a"] = "donotredirct";
	Params["quantity"] = iQuantity;
	Params["rndvalue"] = Math.random();
	var oObjects = new Object();
	oObjects["quantity"] = iQuantity;
	oObjects["link"] = oA;
	oObjects["vnr"] = sVnr;
	ajax.OpenConnection(addbasket_dataHandler, Params, oObjects);
	
	return false;
	
}

function addbasket_dataHandler(returnparams, oObjects){
	
	var oBasket = document.getElementById('div_basket_mini');
	
	oBasket.innerHTML = returnparams;
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/ajax/addbasket_div.asp");
	
	var Params = new Object();
	Params["vnr"] = oObjects["vnr"];
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(addbasket_div_dataHandler, Params, oObjects);
	
}

function addbasket_div_dataHandler(returnString){
	
	var arr = eval(returnString);
	
	var oParams = new Object();
	
	oParams["id"] = "addbasketdiv";
	
	var oDiv = RLdesign.Utils.MakeElement("div", oParams, "Tilføjet kurven: " + arr[0]);
	
	var scroll = RLdesign.Utils.GetScrollingOffset();
	oDiv.style.top = scroll["vertical"]+"px";
	
	document.body.appendChild(oDiv);
	setTimeout("removeElement('"+oParams["id"]+"')", 2000);
	oDiv = null;
	oParams = null;
	arr = null;
	
}

function removeElement(sID){
	var oElement = document.getElementById(sID);
	oElement.parentNode.removeChild(oElement);
	oElement = null;
}

function hidebasket(iCount){
	var oBasket = document.getElementById('minibasket');
	if (oBasket.style["visibility"] === "hidden"){
		oBasket.style["visibility"] = "visible";
	}
	else{
		oBasket.style["visibility"] = "hidden";
	}
	if(iCount < 5){
		iCount++;
		setTimeout("hidebasket("+iCount+")", 200);
	}
}

function basket_remove(sVnr){
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/shop/basket_action.asp");
	
	var Params = new Object();
	Params["vnr"] = sVnr;
	Params["a"] = "donotredirct";
	Params["tab"] = "remove";
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(basket_remove_dataHandler, Params);
	
	return false;
}

function basket_remove_dataHandler(returnString){
	document.getElementById("div_basket").innerHTML = returnString;
	updateMiniBasket();
}

function updateMiniBasket(){
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/ajax/minibasket.asp");
	var Params = new Object();
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(updateMiniBasket_dataHandler, Params);
}

function updateMiniBasket_dataHandler(returnString){
	var oBasket = document.getElementById('div_basket_mini');
	oBasket.innerHTML = returnString;
}


function checkifbasketupdated(){
	
	if(document.getElementById("basketedited").value == "1"){
		alert("Du har lavet ændringer i kurven. Opdater inden du går videre");
		document.getElementById("basketedited").form.submit();
		
	}
	else
	{
		var sid = document.getElementById("sid").value;
		window.location = "/shop/address.asp?sid=" + sid;
	}
	
}

function quick_listener_product(oField, e){
	
	var ajax = new RLdesign.Xml.GenericRemoteProvider("/ajax/quick_get_productname.asp");
	var Params = new Object();
	Params["vnr"] = oField.value;
	Params["rndvalue"] = Math.random();
	ajax.OpenConnection(quick_listener_product_datahandler, Params, oField);
	
}

function quick_init_row(oField){
	var oObject = new Object();
	oObject["oRow"] = oField;
	while(oObject["oRow"].tagName.toLowerCase() != "tr"){
		oObject["oRow"] = oObject["oRow"].parentNode;
	}
	oObject["oRows"] = document.getElementById("quicklist").getElementsByTagName("tr");
	
	oObject["bitLowestRow"]= false;
	oObject["iCurrent"] = 0;
	
	for(i = 0; i < oObject["oRows"].length; i++){
		if(oObject["oRow"] === oObject["oRows"][i]){
			oObject["iCurrent"] = i;
			if(i === oObject["oRows"].length-3){
				oObject["bitLowestRow"] = true;
				break;
			}
		}
	}
	
	return oObject;
	
}

function quick_listener_keydown_product(oField, e){
	
	var iKey = RLdesign.Utils.DefineEventKeyCode(e);
	
	if(iKey == 40 || iKey == 13){
		var oObject = quick_init_row(oField);
		if(!oObject["bitLowestRow"]){
			oObject["oRows"][oObject["iCurrent"]+1].getElementsByTagName("input")[0].focus();
		}
		else{quick_addrow();}
		
		return RLdesign.Utils.DefineReturnCode(e,false);
		
	}
	else if(iKey === 38){
		var oObject = quick_init_row(oField);
		if(oObject["iCurrent"]> 1){
			oObject["oRows"][oObject["iCurrent"]-1].getElementsByTagName("input")[0].focus();
		}
	}
	else if(iKey === 39){
		var oObject = quick_init_row(oField);
		oObject["oRows"][oObject["iCurrent"]].getElementsByTagName("input")[1].focus();
	}
	
	return true;
	
}

function quick_listener_keydown_quantity(oField, e){
	
	var iKey = RLdesign.Utils.DefineEventKeyCode(e);
	
	if((iKey === 9 || iKey === 13)){
		var oObject = quick_init_row(oField);
		if(oObject["bitLowestRow"] === true){
			quick_addrow();
			return false;
		}
	}
	else if(iKey === 13){
		var oObject = quick_init_row(oField);
		return false;
	}
	else if(iKey === 37){
		var oObject = quick_init_row(oField);
		oObject["oRows"][oObject["iCurrent"]].getElementsByTagName("input")[0].focus();
	}
	else if(iKey === 38){
		var oObject = quick_init_row(oField);
		if(oObject["iCurrent"] > 1){
			oObject["oRows"][oObject["iCurrent"]-1].getElementsByTagName("input")[1].focus();
		}
	}
	else if(iKey === 40){
		var oObject = quick_init_row(oField);
		if(oObject["bitLowestRow"]){
			quick_addrow();
		}
		oObject["oRows"][oObject["iCurrent"]+1].getElementsByTagName("input")[1].focus();
	}
	return isNumeric(e);
	
}

function quick_listener_product_datahandler(stringreturn, oField){
	var arr = eval(stringreturn);
	var productname = arr[0];
	var amount = arr[2];
	var row;
	row = oField;
	while (row.tagName.toLowerCase() != "tr"){
		row = row.parentNode;
	}
	
	var oQuantityField = row.getElementsByTagName("input")[1];
	
	oQuantityField.onkeyup = null;
	
	oQuantityField.onkeyup = function(){
			checkPackageUnit(oQuantityField, amount)
		};
	
	var val = arr[2];
	
	val = val.substring(val.indexOf(",")+1);
	
	val = val * 1;
	
	if(val > 0){
		val = arr[2];
	}
	else{
		val = arr[2].toString().substring(0,arr[2].toString().indexOf(","))
		
		val = val * 1;
		if(val == 0){
			val = 1;
		}
		
	}
	
	
	oQuantityField.value = val;
	
	var td_productname = row.getElementsByTagName("td")[2];
	
	td_productname.innerHTML = productname;
	
	arr = null;
	productname = null;
	price = null;
	row = null;
	td_productname = null;
	
}

function quick_addrow(){
	
	var oTable = document.getElementById("quicklist");
	var oRow;
	
	if(oTable.getElementsByTagName("tbody").length > 0){
		oTable = oTable.getElementsByTagName("tbody")[0];
	}
	var arrTrs = oTable.getElementsByTagName("tr");
	
	oRow = arrTrs[arrTrs.length-2];
	
	var oPrevRow = arrTrs[arrTrs.length-3];
	
	//var rows = oTable.getElementsByTagName("tr");
	//for(i = 0; i < rows.length; i++){
	//	if(oRow == rows[i]){
	//		var oPrevRow = rows[i-1];
	//		break;
	//	}
	//}
	
	var rowCount = parseInt(oPrevRow.getElementsByTagName("td")[1].getElementsByTagName("input")[0].name.split("_")[1])+1;
	
	var fieldItemid = document.createElement("input");
	fieldItemid.name = "product_" + rowCount.toString();
	fieldItemid.type = "text";
	fieldItemid.className = "text";
	fieldItemid.style.width = "74px";
	
	fieldItemid.onkeyup = function(event){
		quick_listener_product(this, event);
	};
	fieldItemid.onkeydown = function(event){
		return quick_listener_keydown_product(this, event);
	};
	
	var fieldItemQuantity = document.createElement("input")
	fieldItemQuantity.name = "quantity_" + rowCount.toString();
	fieldItemQuantity.className = "text";
	fieldItemQuantity.onkeydown = function(event){
		return quick_listener_keydown_quantity(this, event);
	};
	fieldItemQuantity.size = 2;
	fieldItemQuantity.style.textAlign = "center";
	
	var newRow = document.createElement("tr");
	var col1 = document.createElement("td");
	var col2 = document.createElement("td");
	var col3 = document.createElement("td");
	
	col1.appendChild(fieldItemid);
	col2.appendChild(fieldItemQuantity);
	
	newRow.appendChild(col1);
	newRow.appendChild(col2);
	newRow.appendChild(col3);
	
	oTable.insertBefore(newRow, oRow);
	
	fieldItemid.focus();
	
	doRowClasses(oTable);
	
	oPrevRow = null;
	fieldItemid = null;
	fieldItemQuantity = null;
	col1 = null;
	col2 = null;
	col3 = null;
	newRow = null;
	oTable = null;
	oRow= null;
	rows = null;
	
}

function doRowClasses(oTable){
	
	var firstClass = "";
	
	var rows = oTable.getElementsByTagName("tr");
	
	for(i = 1; i < rows.length; i++){
		firstClass = rows[i].className;
		break;
	}
	
	var currentClass = firstClass;
	
	for(i = 1; i < rows.length; i++){
		rows[i].className = currentClass;
		currentClass = alternateClass(currentClass);
	}
	
	firstClass = null;
	currentClass = null;
	
}

function alternateClass(sIn){
	if(sIn == "alt"){
		return "";
	}
	else
	{
		return "alt";
	}
}

function initgls(){
	$("#zip").blur(function(){getshops()});
	$("#city").blur(function(){getshops()});
	$("#address1").blur(function(){getshops()});
	$("#delivery_address1").blur(function(){getshops()});
	$("#delivery_zip").blur(function(){getshops()});
	$("#delivery_city").blur(function(){getshops()});
	$("#deliveryaddress").change(function(){getshops()});
	$("input[name='gls']").change(function(){getshops()});
	$("#country").change(function(){getshops()});
	$("#delivery_country").change(function(){getshops()});
	$("#deliveryaddress").change(function(){
		if($(this).attr("checked") == true){
			$("#tabledelivery").show();
		}
		else{
			$("#tabledelivery").hide();
		}
	});
	
	if($("#deliveryaddress").attr("checked") == true){
		$("#tabledelivery").show();
	}
	else{
		$("#tabledelivery").hide();
	}
	
	getshops();
}

var sid = ""
var account = ""

function getshops(){
	
	var country = $("#country").val();
	var deliverycountry = $("#delivery_country").val();
	var alternatedeliveryaddress = $("#deliveryaddress").attr("checked");
	
	if(country == "6" && alternatedeliveryaddress == false || alternatedeliveryaddress == true && deliverycountry == "6"){
		var gotdeliverytype = false;
		var deliverytype = "";
		$("input[name='gls']").each(function(){
			$(this).attr("disabled", false);
			if($(this).attr("checked")){
				gotdeliverytype = true;
				deliverytype = $(this).val()
				if(deliverytype != "0"){
					clearshops();
				}
			}
		});
		
		if(gotdeliverytype == false || deliverytype != "0"){
			if(alternatedeliveryaddress){
				$("#deliveryaddress").attr("readonly", "");
				$("#delivery_name").attr("readonly", "");
				$("#delivery_att").attr("readonly", "");
				$("#delivery_address1").attr("readonly", "");
				$("#delivery_zip").attr("readonly", "");
				$("#delivery_city").attr("readonly", "");
			}
			return;
		}
		
		
		var zip = $("#zip").val();
		zip = parseInt(zip);
		var address1 = $("#address1").val();
		var alternatedelivery = $("#deliveryaddress").attr("checked");

		if(alternatedelivery && deliverytype == "0"){
			address1 = $("#delivery_address1").val();
			zip = parseInt($("#delivery_zip").val());
		}
	
		if(!isNaN(zip)){
			$.ajax({
				url: "/service.ashx",
				type: "GET",
				dataType: "json",
				data: { job: "fetchshop", zip: zip, address: address1 },
				success: function (JSON) {
					clearshops();
					if(JSON.length > 0){
						var table = $("#glsshops table");
						for(var i = 0; i < JSON.length; i++){
							var shop = JSON[i];
							var tr = $("<tr></tr>");
							if(i % 2 != 0) tr.addClass("alt");
							var td = $("<td></td>");
							var radio = $("<input type='radio'></input>").attr({ name: "parcelshop", id: "parcelshop_" + shop[6], value: shop[6], rel: shop[1]});
							radio.get(0).shopinfo = shop;
							radio.click(function(){
								$("#tabledelivery").hide();
								shopinfo = $(this).get(0).shopinfo;
								$("#parcelshopname").val($(this).attr("rel"));
								$("#deliveryaddress").attr("checked", "checked");
								$("#delivery_name").val(shopinfo[1]);
								$("#delivery_att").val(shopinfo[6]);
								$("#delivery_address1").val(shopinfo[8]);
								$("#delivery_zip").val(shopinfo[11]);
								$("#delivery_city").val(shopinfo[0]);
								$("#deliveryaddress").attr("readonly", "readonly");
								$("#delivery_name").attr("readonly", "readonly");
								$("#delivery_att").attr("readonly", "readonly");
								$("#delivery_address1").attr("readonly", "readonly");
								$("#delivery_zip").attr("readonly", "readonly");
								$("#delivery_city").attr("readonly", "readonly");
							});
							td.append(radio);
							tr.append(td);
							td = $("<td></td>");
							var label = $("<label></label>").attr("for", "parcelshop_" + shop[6]).html(shop[1] + ", " + shop[11] + " " + shop[0] + ", " + shop[8]);
							var openAt = shop[7];
							var sopen = "";
							for(var iwd = 0; iwd < openAt.length; iwd++){
								var wd = openAt[iwd];
								sopen += "<strong>" + wd[0] + ":</strong> " + wd[1] + " - " + wd[2];
								if(iwd < openAt.length - 1) sopen += ", ";
							}
							label.html(label.html() + "<br />" + sopen);
							td.append(label);
							tr.append(td);
							table.append(tr);
						}
					}
				},
				error: function (s, ss, sss) {
					clearshops();
					//alert(s);
					//alert(ss);
					//alert(sss);
				}
			});
		}
	}
	else {
		clearshops();
		$("input[name='gls']").each(function(){
			if($(this).val() == "3"){
				$(this).attr("checked", true);
			}
			else{
				$(this).attr("disabled", true);
			}
		});
	}
	
	if(alternatedeliveryaddress){
		country = deliverycountry
	}
	
	$.ajax({
			url: "/ajax/get_shippingfrombasket.asp",
			type: "GET",
			dataType: "json",
			data: { sid: sid, account: account, country: country, deliverymethod: 3 },
			success: function (JSON) {
				$("#eushippingprice").html(Number(JSON[0]).toFixed(2).replace(",", "").replace(".", ","))
			},
			error: function(s,ss,sss){}
		});
	
}


function clearshops(){
	$("#glsshops table tr").remove();
	$("#parcelshopname").val("");
}


