tuksi.basket = Base.extend({
	options:Array(),
	items:Array(),
	userid:false,
	nbItems:0,
	constructor:function(){
		this.nbItems = 0;
	},
	getTable:function(){

		var url = "/services/ajaxhandler.php?action=tableres&tableres=true&dato=";
		var datePicked = document.getElementById('dato').value;
		var urlpart = "&place=";
		var placePicked = Number(document.getElementById('place').value);
		var reqUrl = url + datePicked + urlpart + placePicked;
		new Ajax.Request(reqUrl,{method:'get',onComplete:this.processTable.bind(this,1)});
			//xmlOpen("GET",reqUrl,processReq);		
		
	},
	processTable:function(inputId,r){
		
			xml = r.responseXML;
			var status = xml.getElementsByTagName('status').item(0).firstChild.data;
			// alert("asdf" + status);
//			var status = xmlHandler._getStatus(xml);
			if(status == "success") {
				//var price = xmlHandler._getElementValue(xml,"pris");
				var htmlreturn = xml.getElementsByTagName('option').item(0).firstChild.data;
			document.getElementById('timebox').innerHTML = htmlreturn;
//			} else if(status == "not_found") {
			//	document.getElementById('statustext').innerHTML = "Ingen udbringning i dette område.";
//			} else {
			//	document.getElementById('statustext').innerHTML = "Der skete en fejl.";
			}
		
	},
	getPrice:function(){
		var url = "/services/ajaxhandler.php?action=takeaway&takeaway=true&zipcode=";
		var zipcode = Number(document.getElementById('zipcode').value);
		if(zipcode > 1000 && zipcode < 10000) {
			var reqUrl = url + escape(zipcode);
			new Ajax.Request(reqUrl,{method:'get',onComplete:this.processReq.bind(this,1)});
			//xmlOpen("GET",reqUrl,processReq);		
		} else {
			document.getElementById('statustext').innerHTML = "Indtast validt postnummer!";
		}
	},
	processReq:function(inputId,r){
			xml = r.responseXML;
			var status = xml.getElementsByTagName('status').item(0).firstChild.data;
//			var status = xmlHandler._getStatus(xml);
			if(status == "success") {
				//var price = xmlHandler._getElementValue(xml,"pris");
				var price = xml.getElementsByTagName('pris').item(0).firstChild.data;
				//var storeid = xmlHandler._getElementValue(xml,"s_placeid");
				var city = xml.getElementsByTagName('city').item(0).firstChild.data;
				var zip = xml.getElementsByTagName('postnr').item(0).firstChild.data;
				document.getElementById('statustext').innerHTML = "" + zip + " " + city + ": <strong> " + price + " kr</strong>";
			} else if(status == "not_found") {
				document.getElementById('statustext').innerHTML = "Ingen udbringning i dette område.";
			} else {
				document.getElementById('statustext').innerHTML = "Der skete en fejl.";
			}
		
	},
	addPrOne:function(productId,inputId,addId){
		if(!isNaN(productId)) {
			var url = "/services/ajaxhandler.php?action=basket&add=true";
			url+= "&productid="+productId;
  			url+= "&additional="+addId;
  			url+= "&userid="+this.userid;	
			new Ajax.Request(url,{method:'get',onComplete:this.updateBasket.bind(this,1)});
		}	
	},
	subPrOne:function(productId,inputId,addId){
		if(!isNaN(productId)) {
			var url = "/services/ajaxhandler.php?action=basket&sub=true";
			url+= "&productid="+productId;
  			url+= "&additional="+addId;
  			url+= "&userid="+this.userid;			
			new Ajax.Request(url,{method:'get',onComplete:this.updateBasket.bind(this,1)});
		}	
	},
	addProduct_old:function(productId,inputId,addId){
		var tmp = "t"+addId;
		tmp+="_add1";
		var additional = document.getElementById(tmp);
		if (additional.value == 0 && additional.tagName == "SELECT") {
			additional.up(".selection").next().down(".error").show();
			return false;
		}
		
		if(!isNaN(productId)) {
			if (additional.tagName == "SELECT") {
	  		additional.up(".selection").next().down(".error").hide();
	  	}
			var url = "/services/ajaxhandler.php?action=basket&add=true";
  			url+= "&productid="+productId;
  			url+= "&additional="+additional.value;
  			url+= "&userid="+this.userid;
			new Ajax.Request(url,{method:'get',onComplete:this.updateBasket.bind(this,1)});
		}
	},
	addProductFlash: function(productId, additionalId) {
	  basket.addProduct(productId, '', '', additionalId);
	},
	addProduct:function(productId,inputId,addId,additionalId){
		var tmp = "t"+addId;
		tmp+="_add1";
		var additional = document.getElementById(tmp),
		    add_value = additional ? additional.value : additionalId || 0;
		if (!additionalId && additional && additional.value == 0 && additional.tagName == "SELECT") {
			additional.up(".selection").next().down(".error").show();
			return false;
		}
		
		if(!isNaN(productId)) {
			if (!additionalId && additional && additional.tagName == "SELECT") {
	  		additional.up(".selection").next().down(".error").hide();
	  	}
			var url = "/services/ajaxhandler.php?action=basket&add=true";
  			url+= "&productid="+productId;
  			url+= "&additional="+add_value;
  			url+= "&userid="+this.userid;
			new Ajax.Request(url,{method:'get',onComplete:this.updateBasket.bind(this,1)});
		}
	},
	updateBasket:function(inputId,r){
		
		xml = r.responseXML;
		var status = xml.getElementsByTagName('status').item(0).firstChild.data;
		if(status == "success") {
			var itemstatus = xml.getElementsByTagName('itemstatus').item(0).firstChild.data;
			var id = xml.getElementsByTagName('id').item(0).firstChild.data;
			var amount = xml.getElementsByTagName('amount').item(0).firstChild.data;
			var totalprice = xml.getElementsByTagName('totalprice').item(0).firstChild.data;
			var totalamount = xml.getElementsByTagName('totalamount').item(0).firstChild.data;
			var additional = xml.getElementsByTagName('additional').item(0).firstChild.data;
			var totalcount = xml.getElementsByTagName('totalcount').item(0).firstChild.data;
			var totalcountamount = xml.getElementsByTagName('totalcountamount').item(0).firstChild.data;
			
			if(itemstatus == "updated" && amount > 0) {
				document.getElementById("t"+id + "_" + additional + "_count").innerHTML = amount;
				document.getElementById("t"+id + "_" + additional + "_price").innerHTML = totalprice;
				document.getElementById("totalamount").innerHTML = totalamount;
			}
			else if( amount > 0 ) {
				var name = xml.getElementsByTagName('name').item(0).firstChild.data;
				var category = xml.getElementsByTagName('category').item(0).firstChild.data
				var pricetext = xml.getElementsByTagName('pricetext').item(0).firstChild.data
				var asc = xml.getElementsByTagName('asc').item(0).firstChild.data
				
				var newdiv = document.createElement('div');
				newdiv.setAttribute('id',"basketItem_"+id+"_"+additional);
				
				html = "<table summary=\"Indkøbskurv til varer\" id=\"basketRight_"+id+"\">";
				html+= "<tr>";
				html+= "<td class='remove'><a href=\"#\" onclick=\"basket.removeItem('"+id+"','"+additional+"',"+additional+");return false;\"><img src=\"/images/buttons/bn_remove.gif\" alt=\"\" title=\"Fjern varen helt fra listen\"></a></td>";
				html+= "<td>"+name+"<br>";
				
				if( pricetext != '' ) {
					html+= "<span>"+pricetext+"</span><br>";
				}
				if( asc != '&nbsp;' ) {
					html+= "<span>"+asc+"</span>";
				}
				if( category != '' && asc != '&nbsp;' ) {
					html+= "<br>";
				}
				if( category != '' ) {
					html+= "<span class="+category+">"+category+"</span>";
				}
								
				html+= "</td>";
				html+= "<td class=\"amount\">";
				html+= "<div>";
				html+= "<a href=\"#\" onclick=\"basket.addPrOne('"+id+"','{$module.id}',"+additional+");return false;\"><img src=\"/images/buttons/bn_increase_number.gif\" alt=\"\" title=\"Tilføj et stk. til ordren\"></a>";
				html+= "<a href=\"#\" onclick=\"basket.subPrOne('"+id+"','{$module.id}',"+additional+");return false;\"><img src=\"/images/buttons/bn_decrease_number.gif\" alt=\"\" title=\"Fjern et stk. fra ordren\"></a>";
				html+= "</div>";
				html+= "<span id=\"t"+id+"_"+additional+"_count\">"+amount+"</span>";
				html+= "</td>";
				html+= "<td class=\"price\" id=\"t"+id+"_"+additional+"_price\">"+totalprice+"</td>";
				html+= "</tr>";
				html+= "</table>";
								
				newdiv.innerHTML = html;
				
				document.getElementById("takeawayBasketItems").appendChild(newdiv);
				
				document.getElementById("totalamount").innerHTML = totalamount;
				document.getElementById("basketAction").style.display = "block";
				document.getElementById("basketAction2").style.display = "block";				
				correctColumns();
			}
			else {
				var basketParent = document.getElementById("takeawayBasketItems");
				var basketChild = document.getElementById("basketItem_"+id+"_"+additional);
							
				basketParent.removeChild(basketChild);
				
				document.getElementById("totalamount").innerHTML = totalcountamount;
				
				if(totalcount == 0) {
					document.getElementById("basketAction").style.display = "none";
					document.getElementById("basketAction2").style.display = "none";					
				}
				
				//window.location.reload();
			}
		}
		
	},
	updateBasket_old:function(inputId,r){
		xml = r.responseXML;
		var status = xml.getElementsByTagName('status').item(0).firstChild.data;
		if(status == "success") {
			var itemstatus = xml.getElementsByTagName('itemstatus').item(0).firstChild.data;
			var id = xml.getElementsByTagName('id').item(0).firstChild.data;
			var amount = xml.getElementsByTagName('amount').item(0).firstChild.data;
			var totalprice = xml.getElementsByTagName('totalprice').item(0).firstChild.data;
			var totalamount = xml.getElementsByTagName('totalamount').item(0).firstChild.data;
			var additional = xml.getElementsByTagName('additional').item(0).firstChild.data;
			
			if(itemstatus == "updated" && amount > 0) {
				document.getElementById("t"+id + "_" + additional + "_count").innerHTML = amount;
				document.getElementById("t"+id + "_" + additional + "_price").innerHTML = totalprice;
				document.getElementById("totalamount").innerHTML = totalamount;
			} else {
				window.location.reload();
			}
/*			
			$("amount_"+inputId).value = "";
			var totalamount = xml.getElementsByTagName('totalamount').item(0).firstChild.data;
			this.updateTotalAmount(totalamount);
*/		
		}
		
	},
	setUserId:function(userid) {
		this.userid = userid;
	},
	addItem:function(id,name,amount,totalprice) {
		this.items[id] = {id:id,name:name,amount:amount,totalprice:totalprice};
		this.nbItems++;
	},
	addItemToHtml:function(id,name,amount,totalprice) {
		var itemHtml = "<tr style='display:none;' id='basketitem_"+id+"'>";
		itemHtml+= "<td width='125'><span id='basketitemamount_"+id+"'>"+amount+"</span> x "+name+"</span></td>";
		itemHtml+= "<td width='30' class='basketCurrency'>Kr.</td>";
		itemHtml+= "<td width='55' class='basketText'><span class='totalPrice' id='basketitemtotalprice_"+id+"'>"+totalprice+"</span>,-</td>";
		itemHtml+= "<td width='10' class='basketDelete'><a href='#' onclick='basket.removeItem(\""+id+"\");return false;'><!-- slet--><img src='/images/icons/delete.gif' alt='Slet'></a></td>";
		itemHtml+= "</tr>";
		
		var newTR = $('basket').insertRow(-1);
		newTR.setAttribute('id',"basketitem_"+id);
		Element.setStyle(newTR,{display:'none'});
		var firstTD = newTR.insertCell(0);
		firstTD.setAttribute('width',"125");
		firstTD.innerHTML = "<span id='basketitemamount_"+id+"'>"+amount+"</span> x "+name+"</span>";
		var secondTD = newTR.insertCell(1);
		secondTD.setAttribute('width',"30");
		secondTD.className = 'basketCurrency';
		secondTD.innerHTML = "Kr.";
		var thirdTD = newTR.insertCell(2);
		thirdTD.setAttribute('width',"55");
		thirdTD.className = 'basketText';
		thirdTD.innerHTML = "<span class='totalPrice' id='basketitemtotalprice_"+id+"'>"+totalprice+"</span>,-";
		var fouthTD = newTR.insertCell(3);
		fouthTD.setAttribute('width',"10");
		fouthTD.className = "basketDelete";
		fouthTD.innerHTML = "<a href='#' onclick='basket.removeItem(\""+id+"\");return false;'><!-- slet--><img src='/images/icons/delete.gif' alt='Slet'></a>";

		//$('basket').getElementsByTagName('tbody')[0].innerHTML
		//$('basket').appendChild(newTR);//innerHTML = $('basket').innerHTML + itemHtml;
		new Effect.Appear($("basketitem_"+id));
	},
	removeItem_old:function(id,addId){
		
		var url = "/services/ajaxhandler.php?action=basket&remove=true";
		url+= "&productid="+id;
		url+= "&additional="+addId;
		url+= "&userid="+this.userid;
		new Ajax.Request(url,{method:'get',onComplete:this.updateBasketDelete.bind(this,id)});
	},
	removeItem:function(id,addId){
		var url = "/services/ajaxhandler.php?action=basket&remove=true";
		url+= "&productid="+id;
		url+= "&additional="+addId;
		url+= "&userid="+this.userid;
		new Ajax.Request(url,{method:'get',onComplete:this.updateBasketDelete.bind(this,id)});
	},
	removenode:function(node,id){
		alert(id);
	},
	updateBasketDelete: function(id,r){

		xml = r.responseXML;
		var status = xml.getElementsByTagName('status').item(0).firstChild.data;
		var items = xml.getElementsByTagName('items').item(0).firstChild.data;
		var totalamount = xml.getElementsByTagName('totalamount').item(0).firstChild.data;
		var additional = xml.getElementsByTagName('additional').item(0).firstChild.data;
		
		if(status == "success") {
			var basketParent = document.getElementById("takeawayBasketItems");
			var basketChild = document.getElementById("basketItem_"+id+"_"+additional);
						
			basketParent.removeChild(basketChild);
			
			document.getElementById("totalamount").innerHTML = totalamount;
				
			if(items == 0) {
				document.getElementById("basketAction").style.display = "none";
				document.getElementById("basketAction2").style.display = "none";				
			}
			correctColumns();
		}
	},
	updateBasketDelete_old: function(id,r){

		xml = r.responseXML;
		var status = xml.getElementsByTagName('status').item(0).firstChild.data;
		if(status == "success") {
			window.location.reload();
			/*
			var totalamount = xml.getElementsByTagName('totalamount').item(0).firstChild.data;
			
			this.updateTotalAmount(totalamount);
			
			if(this.items[id]) {
				this.items[id] = null;
			}
			
			this.nbItems--;
			
			this.checkEmpty();
			
			if($('basketitem_'+id)) {
				var rows = $('basket').getElementsByTagName('tr');
				for(var i = 0,max = rows.length;i < max;i++) {
					if(rows[i].id == 'basketitem_'+id) {
						$('basket').deleteRow(i);
						return;
					}
				}	
			}
			*/
		}
	},
	updateTotalAmount:function(amount){
		$('baskettotalamount').innerHTML = "Kr. "+amount+",-";
		new Effect.Pulsate($('baskettotalamount'),{pulses:1,duration:1});
	},
	checkEmpty:function(){
		if(this.nbItems < 1) {
			new Effect.Appear($('emptybasket'));
		} else if(this.nbItems > 0) {
			new Effect.Fade($('emptybasket'));
		}
	},
	placeorder:function(){
		
		var doRequestForm = false;
		
		if($('req_name')) {
			
			var formValues = $H({ name:escape($F('req_name')), 
														email: escape($F('req_email')),
														phone: escape($F('req_phone')),
														message: escape($F('req_message'))});
														
			formValues.each(function(pair) {
				if(pair.value != '') {
					doRequestForm = true;
				}
			});
		}
		if(doRequestForm) {
			this.submitRequestForm('req','requestform','Kontakt mig med et godt tilbud på mit arrangement');return false;
		} else {
			var url = "/services/ajaxhandler.php?action=orderform";
			url+= "&userid="+this.userid;
			new Ajax.Request(url,{method:'get',onComplete:this.showOrderForm.bind(this)});
		}
	},
	showOrderForm:function(r){
		xml = r.responseXML;
		var form = xml.getElementsByTagName('html').item(0).firstChild.data;
		tuksi.util.showPopup(form);
		this.setContactForm('overlay');
	},
	submitOrderForm:function(){
		
		var url = "/services/ajaxhandler.php?action=orderform&submit=1&type=orderform";
		url+= "&name="+escape($F('name'));
		url+= "&email="+ escape($F('email'));
		url+= "&phone="+ escape($F('phone'));
		url+= "&message="+escape($F('message'));
		url+= "&userid="+this.userid;
		new Ajax.Request(url,{method:'get',onComplete:this.updateOrderForm.bind(this)});
	},
	updateOrderForm:function(r){
		xml = r.responseXML;
		var html = xml.getElementsByTagName('html').item(0).firstChild.data;
		tuksi.util.updatePopup("<pre>"+html+'</pre>');
	},
	submitRequestForm:function(prepend,type,textstr){
		
		var ok = true;
		
		var formValues = $H({ name:escape($F(prepend + '_name')), 
													email: escape($F(prepend + '_email')),
													phone: escape($F(prepend + '_phone')),
													message: escape($F(prepend + '_message'))});
		formValues.each(function(pair) {
			if((pair.value == '' || pair.value == 'skal%20udfyldes') &&  pair.key != 'message') {
				basket.setError($('label_'+prepend+'_' + pair.key));
				$(prepend+'_' + pair.key).value = "skal udfyldes";
				ok = false;
			} else {
				if(pair.key == "email") {
					if(basket.isEmail(pair.value)) {
						basket.clearError($('label_'+prepend+'_' + pair.key));
					} else {
						ok = false;	
						basket.setError($('label_'+prepend+'_' + pair.key));
					}
				} else if(pair.key == "phone") {
						if(isNaN(pair.value) || pair.value.length != 8) {
							ok = false;	
							basket.setError($('label_'+prepend+'_' + pair.key));
						} else {
							basket.clearError($('label_'+prepend+'_' + pair.key));
						}
				} else {
					basket.clearError($('label_'+prepend+'_' + pair.key));
				}
			}
		});
		if(ok) {
			var url = "/services/ajaxhandler.php?action=orderform&submit=1&";
			url+= "&userid="+this.userid;
			url+= "&type="+type;
			url+= "&textstr=" + escape(textstr);
			if(type == "orderform") {
				urchinTracker('/tracking/send_mig_tilbud');
				new Ajax.Request(url,{parameters:formValues,onComplete:this.updateOrderForm.bind(this)});
			} else {
				urchinTracker('/tracking/kontaktformular');
				new Ajax.Request(url,{parameters:formValues,onComplete:this.updateRequestForm.bind(this)});
			}
		}
	},
	updateRequestForm:function(r){
		xml = r.responseXML;
		var html = xml.getElementsByTagName('html').item(0).firstChild.data;
		$('requestForm').innerHTML = html;
	},
	setContactForm:function (prepend){
		var fields = ['name','email','phone','message'];
		fields.each(function(i){
			var name = prepend + '_' + i;
			Event.observe(name,'focus',basket.activateField.bindAsEventListener(basket,name));
			Event.observe(name,'blur',basket.deactivateField.bindAsEventListener(basket,name));
		});
	},
	setError:function(obj){
		obj.setStyle({color:"#dea600",fontWeight:'bold'});
	},
	clearError:function(obj){
		obj.setStyle({color:"#3F3B2D",fontWeight:'normal'});
	},
 	activateField:function(Event,obj){
 		if($(obj).value == 'skal udfyldes') {
			$(obj).value = "";
		}	
		$(obj).setStyle({border:'1px solid #dea600'});
	},
	deactivateField:function(Event,obj){
		$(obj).setStyle({border:'1px solid #ADA898'});
	},
	isEmail:function(str) {
		return /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(str);
	}
});

var closeFlash = function() {
  document.location = '/takeaway/menuer.html';
};