var BASKET = '/basket';
var VAREINFO = '/info';

function init() {
	/*replaceSelects();
	if (Prototype.Browser.IE) {
		fixButtonHover();
		fixDanmarkskort();
	}*/
	Ajax.Responders.register({
    onCreate: function() {
//      Ajax.activeRequestCount++;
      window.setTimeout(function(){showHideLoad();},10);
    },
    onComplete: function() {
//      Ajax.activeRequestCount--;
      showHideLoad();
    }
  });
  if (typeof tilbud != 'undefined') {
    tilbud();
  }
  /*if ($('kategori_files')) {
    $('kategori_files').down('h2').onclick = function() {
      $(this).next().toggle();
      return false;
    }.bind($('kategori_files').down('h2'));
  }*/
  $$('body')[0].observe('click',toggleFiles);

}

function toggleFiles(event) {/*
  if ($('kategori_files')) {
    var ele = Event.element(event);
//    console.log(ele.up('div'),$('kategori_files'));
    if (ele.up('div') != $('kategori_files')) {
      $('kategori_files').down('div').hide();
    } else {
      if (ele == $('kategori_files').down('h2')) {
        $('kategori_files').down('div').toggle();
      } else {
        $('kategori_files').down('div').show();
      }
    }
  }*/
}


function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57

    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;

    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

var fx = null;
function showHideLoad() {
  if (Ajax.activeRequestCount > 0) {
    if (Prototype.Browser.IE) {
//      $('loading').style.top = document.documentElement.ScrollTop + 'px';
    }
    window.clearTimeout(fx);
    var load = $('loading');
    var top = document.documentElement.scrollTop;
    load.style.position = 'absolute';
    if (top > 140) {
      load.style.top = top+'px';
    } else {
      load.style.top = '140px';
    }
    load.show();
  } else {
    fx = window.setTimeout(function(){$('loading').hide()},500);
//    $('loading').hide();
//    var fx = new Effect.Fade('loading');
  }
}


function verifyemail_check(str) {
	if (str != '') {
	    if(!str.match(/^[\wåäöåøæ]{1}[\wåäöåøæ\.\-_]*@[\wåäöåøæ]{1}[\wåäöåøæ\-_\.]*\.[\w]{2,6}$/i)) {
    	    return false;
	    } else {
	        return true;
	    }
	}
}

function IsNumeric(strString) {
	var strValidChars = "0123456789+, ";
	var strChar;
	var blnResult = true;

	if (strString.length == 0) return false;
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function is_visible(ele) {
	var v = true;
	var l = 0;
	ele = $(ele);
	if (ele.nodeName != 'SELECT') {
		while (ele.parentNode != null) {
			if (!$(ele).visible()) {
				v = false;
				break;
			}
			ele = $(ele.parentNode);
			++l;
		}
	}
	return v;
}

function switchLevering(ele) {
  var ele = $(ele);
  $$('.levering').each(function(c){
    c.checked = false;
  });
  ele.checked = true;
  $('real_levering').value = ele.value;
}

function testForm(frm) {
	var frm = $(frm);
//	var eles = frm.getElements();
	var eles = frm.select('.required');
	var ret = true;
	var radios = {};
	eles.each(function(ele){
			if (ele.hasClassName('required') && is_visible(ele)) {
				var val = $F(ele);
				if (radios[ele.name]) return;
				var classSet = 'inputTextRed';/*
				if ($(ele.parentNode).hasClassName('postby')) {
					classSet = 'inputTextRedPostby';
				} else if ($(ele.parentNode).hasClassName('inputSplit')) {
					classSet = 'inputSplitRed';
				} else if (ele.nodeName == 'SELECT') {
					classSet = 'formSelectRed';
				}*/
				$(ele.parentNode).removeClassName(classSet);
				if (val == null || val.blank()) {
				  if (ele.type == 'radio' && !radios[ele.name]) {
				    radios[ele.name] = true;
				    var test = function(n) {
				      return n;
				    }
				    opq = $$('input[name='+ele.name+']').pluck('checked').find(test); // opq, som i alfabetet, O, P & Q... Sikke en fantasi...
					  if (opq) {
  							$(ele.parentNode).removeClassName(classSet);
    				 } else {
				        ret = false;
  							$(ele.parentNode).addClassName(classSet);
  					 }
				  } else {
  					ret = false;
  					$(ele.parentNode).addClassName(classSet);
				  }
				} else {
			    $(ele.parentNode).removeClassName(classSet);
				}
				switch (true) {
					case ele.hasClassName('phone'):
						var chk = val.length < 8 ? false : true;
                        // extra check for Int
                        if(chk){
                          if(val != parseInt(val)){
                            chk = false;
                            alert('Feltet (telefonnummer) må kun anvendes til 8 cifre, uden mellemrum og tegn');
                          }
                        }
						if (!chk) {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						} else {
							$(ele.parentNode).removeClassName(classSet);
						}
					break;
					case ele.hasClassName('number'):
						var chk = IsNumeric(val);
						if (!chk) {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						} else {
							$(ele.parentNode).removeClassName(classSet);
						}
					break;
					case ele.hasClassName('money'):
						var chk = IsNumeric(val);
						if (!chk) {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						} else {
							$(ele.parentNode).removeClassName(classSet);
						}
					break;
					case ele.hasClassName('email'):
						var chk = verifyemail_check(val);
						if (!chk) {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						} else {
							$(ele.parentNode).removeClassName(classSet);
						}
					break;
					case ele.hasClassName('option'):
						if (ele.selectedIndex == 0) {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						} else {
							$(ele.parentNode).removeClassName(classSet);
						}
					break;
					case ele.hasClassName('dankort'):
						if (val) {
							var c = new checksum('luhn');
							var chk = c.checksum(val);
							if (!chk) {
								ret = false;
								$(ele.parentNode).addClassName(classSet);
							} else {
								$(ele.parentNode).removeClassName(classSet);
							}
						} else {
							ret = false;
							$(ele.parentNode).addClassName(classSet);
						}
					break;
				}
			}
		}
	);
	return ret;
}

function fixButtonHover() {
	var buttons = document.getElementsByTagName('button');
	$A(buttons).each(function(button){
		button.onmouseover = function() {
			$(button).addClassName('hover');
		}
		button.onmouseout = function() {
			$(button).removeClassName('hover');
			$(button).removeClassName('active');
		}
		button.onmousedown = function() {
			$(button).addClassName('active');
		}
		button.onmouseup = function() {
			$(button).removeClassName('active');
		}
	});
}

function basename(name) {
	var baseA = name.split('/');
	var newName = baseA[baseA.length-1];
	return newName;
}

function sorter(sortBy,sortDir,katId,table,prefix) {
	var div = $('overlay');
	/*
	div.style.width = table.getWidth()+'px';
	div.style.height = table.getHeight()+'px';
	*/
	div.style.width = table.offsetWidth+'px';
	div.style.height = table.offsetHeight+'px';
	div.show();
	var ax = new Ajax.Updater($('tableHolder'),'/sorter'+prefix,{
		parameters:'&kat='+katId+'&sort='+sortBy+'&dir='+sortDir,
		method:'post',
		onSuccess: function() {
			div.hide();
		},
		onFailure: function() {
			div.hide();
		}
	})
	return false;
}

var bigImg = null;
function openImage(src) {
	var imgW = 600;
	var imgH = 450;
	var sW = screen.availWidth;
	var sH = screen.availHeight;
	var top = (sH/2)-(imgH/2);
	var left = (sW/2)-(imgW/2);
	src = basename(src);
	bigImg = window.open('/bigimage?img='+src,'blank','resizeable=1,resizable=yes,width='+imgW+',height='+imgH+',left='+left+',top='+top);
	if (bigImg.focus) {
		bigImg.focus();
	}
	return false;
}

function clearText() {
	var ele = arguments[0] || false;
    if (ele == $(ele)) {
      if (!ele.value) {
        ele.value = ele.defaultValue;
      }
    }
    return;
	if (ele && ele.title) {
		var force = arguments[1] || false;
		var str = ele.title;
		if (ele.value == '' || force) {
			ele.value = str;
			//ele.style.color = 'grey';
		} else if (ele.value == str) {
			ele.value = '';
			//ele.style.color = 'black';
		}
	}
	return false;
}

/* thanks www.quirksmode.org */
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
/* end */

var posBuyMsgTime = null;
function posBuyMsg(ele,show) {
  /*
	if (show == 'ok') {
		var msg = $('basketOk');
	} else if (show == 'error') {
		var msg = $('basketError');
	} else {
		return;
	}
	clearTimeout(posBuyMsgTime);
	var pos = findPos(ele.parentNode);
	msg.style.left = (pos[0])+'px';
	msg.style.top = (pos[1]-70)+'px';
	if (msg.visible() != true) {
		new Effect.Appear(msg);
	}
	posBuyMsgTime = setTimeout(function(){hidePosMsg(msg)},2000);
	*/
  if (show == 'ok') {
    var msg = 'Din vare er lagt i indkøbskurven.';
  } else if (show == 'error') {
    var msg = 'Der skete en fejl.';
  } else {
    return;
  }
  alert(msg);
}

function hidePosMsg(msg) {
	if (posBuyMsgTime != null)
	new Effect.Fade(msg)
}

function updateBasket() {
	var obj = arguments[0] || {};
	if (obj['pris'] && obj['pris']) {
		antal = obj['antal'];
		pris = obj['ialt'];
	} else {
		antal = '0';
		pris = '0,00';
	}
	Eantal = $('smallBasketAntal');
	Epris = $('smallBasketKr');
	Eantal.update(antal);
	Epris.update(pris);
	if ($('basketTable')) {
		updateBigBasket(obj);
	}
	buyRunning = false;
}

function updateBigBasket(obj) {
	if (!obj['pris']) {
		$('basketHolder').update('<p class="info empty-basket large">Du har ingen varer i din indkøbskurv.</p>');
		return false;
	}
	$('basketPris').update(obj['pris']);
	$('basketIalt').update(obj['ialt']);
	$('basketMoms').update(obj['moms']);
	//$('basketFragt').update(obj['fragtpris']);
	var table = $('basketTable');
	var tbody = table.immediateDescendants()[1];
	tbody.update();
	var i = 0;
	$A(obj['varer']).each(function(vare){
		var model = Builder.node('td',{className:'table-view-model table-view-first'},vare['model']);

		var a = vare['name'];
		if (vare['url'] && !vare['url'].empty() && BASKET_LINK) {
			var url = vare['url'];
			var a = Builder.node('a',{'href':'http://'+DOMAIN+'/index/'+url},vare['name']);
		}
		var name = Builder.node('td',{className:'table-view-name'},a);

		var antal = Builder.node('td',{className:'table-view-price'},vare['antal']);
		var pris = Builder.node('td',{className:'table-view-price'},vare['pris']);
		var ialt = Builder.node('td',{className:'table-view-price  table-view-ialt'},vare['pris_ialt']);

		var plus = Builder.node('td',{className:'table-view-icon'},Builder.node('a',{
				href:'http://'+DOMAIN+'/index/basket?add='+vare['produkt']+'&antal=1',
				className:'basketIcon basketPlus',
				onclick:'return buy(\'1\',\''+vare['produkt']+'\')'
			},'+'));
		var minus = Builder.node('td',{className:'table-view-icon'},Builder.node('a',{
				href:'http://'+DOMAIN+'/index/basket?add='+vare['produkt']+'&antal=-1',
				className:'basketIcon basketMinus',
				onclick:'return buy(\'-1\',\''+vare['produkt']+'\')'
			},'-'));
		var x = Builder.node('td',{className:'table-view-icon'},Builder.node('a',{
				href:'http://'+DOMAIN+'/index/basket?add='+vare['produkt']+'&antal=-99999999',
				className:'basketIcon basketX',
				onclick:'return buy(\'-99999999999\',\''+vare['produkt']+'\')'
			},'x'));

		var tr = Builder.node('tr');
		tr.appendChild(model);
		tr.appendChild(name);
		tr.appendChild(antal);
		tr.appendChild(pris);
		tr.appendChild(ialt);
		tr.appendChild(plus);
		tr.appendChild(minus);
		tr.appendChild(x);

		tbody.appendChild(tr);
		tr.className = i%2 ? 'tr-even' : 'tr-odd';
		i++;
	});
}

function updateVareInfoHTML(obj) {
	$('vareDescription').update(obj['produkt_description']);
//	$('varePris').update(obj['produkt_pris']);
	var prisFelt = $('prisFelt');
	if (obj['produkt_pris_old'] != '0,00') { // TILBUD!
		$('tilbud-stjerne').show();
		prisFelt.update('');
		prisFelt.appendChild(document.createTextNode('TILBUD: '));
		prisFelt.appendChild(Builder.node('span',{className:'rlarge',id:'varePris'},obj['produkt_pris']+' '));
		prisFelt.appendChild(Builder.node('br'));

		prisFelt.appendChild(document.createTextNode('Før pris: '));
		prisFelt.appendChild(Builder.node('span',{className:'large',id:'varePrisOld'},obj['produkt_pris_old']+' '));

		prisFelt.appendChild(document.createTextNode(' spar: '));
		prisFelt.appendChild(Builder.node('span',{className:'large',id:'varePrisOldSave'},obj['produkt_pris_spar']+' '));
		prisFelt.appendChild(Builder.node('br'));

		prisFelt.appendChild(document.createTextNode('Pris inkl. moms: '));
		prisFelt.appendChild(Builder.node('span',{id:'varePrisMoms'},obj['produkt_pris_moms']+' '));
		prisFelt.appendChild(Builder.node('br'));
	} else {
		$('tilbud-stjerne').hide();
		prisFelt.update('');
		prisFelt.appendChild(document.createTextNode('Pris: '));
		prisFelt.appendChild(Builder.node('span',{className:'rlarge',id:'varePris'},obj['produkt_pris']));
		prisFelt.appendChild(Builder.node('br'));

		prisFelt.appendChild(document.createTextNode('Pris inkl. moms: '));
		prisFelt.appendChild(Builder.node('span',{id:'varePrisMoms'},obj['produkt_pris_moms']));
		prisFelt.appendChild(Builder.node('br'));
	}
	$('varePrisMoms').update(obj['produkt_pris_moms']);
	$('vareName').update(obj['produkt_name']);
	var overlay = $('overlay');

	//$('vareTabel').update('');
	var table = Builder.node('table',{cellpadding:'2',cellspacing:'0',width:'100%',className:'vare-info'})
	var tbody = Builder.node('tbody');
	tbody = table.appendChild(tbody);
	$A(obj['tabel']).each(function(info){
		var tr = Builder.node('tr');
		var td = Builder.node('td',{width:'80'});
		$(td).update(info['text']);
		tr.appendChild(td);
		if (typeof info['value'] != 'object') {
			var td = Builder.node('td');
			$(td).update(info['value']);
		} else {
			var valObj = info['value'];
			switch (info['text']) {
				case 'Mål:':
					var str = '';
					str += valObj['h'] ? 'Højde: '+valObj['h']+'mm<br />' : '';
					str += valObj['b'] ? 'Bredde: '+valObj['b']+'mm<br />' : '';
					str += valObj['d'] ? 'Dybde: '+valObj['d']+'mm<br />' : '';
					str += valObj['o'] ? 'Diameter: '+valObj['o']+'mm<br />' : '';
					var value = Builder.node('span');
					$(value).update(str);
				break;
				case 'Dokumenter:':
					var str = '';
					valObj.each(function(fil){
						str += fil['str'];
					});
					var value = Builder.node('span');
					$(value).update(str);
				break;
			}
			var td = Builder.node('td',value);
		}
		tr.appendChild(td);
		tbody.appendChild(tr);
	});
	$('vareTabel').update().appendChild(table);

	var holder = $('vareGalleri');
	holder.update('');
	if (obj['galleri']) {
		var br = 0;
		obj['galleri'].each(function(img){
			var image = new Image();
			image.src = '/pictures/catalog/tiny/'+img['image_file'];
			image.onload = function() {
				var pic = Builder.node('img',{src:this.src,'style':'margin:0px;'});
				var a = Builder.node('a',{'href':'/pictures/catalog/large/'+img['image_file'],'onclick':'return openImage(this.href)'},pic);
				holder.appendChild(a);
				br++;
				if (br == 4) {
					holder.appendChild(Builder.node('br'));
					br = 0;
				}
			}
		});
	}
	var img = $('vareImage');
	if (obj['image_file'] && img.src != obj['image_file']) {
		var image = new Image();
		image.src = obj['image_file'];
		image.onload = function() {
			img.src = this.src;
			overlay.hide();
		}
		$('vareImageUrl').href = obj['image_url'];
	} else {
		overlay.hide();
	}
	overlay.hide();
}

var lastVareInfo = 0;
function updateVareInfo(vareId) {
	if (vareId == 0) return false;
	if (vareId == lastVareInfo) return false;

	var overlay = $('overlay');
	var to = $('testOverlay');
	overlay.style.width = to.getWidth()+'px';
	overlay.style.height = to.getHeight()+'px';
	overlay.style.zIndex = 999999;
	overlay.show();

	lastVareInfo = vareId;
	var parms = '&id='+vareId;
	var ax = new Ajax.Request(
		VAREINFO,{
			method:'post',
			parameters:parms,
			onSuccess:function(response,json) {
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'update-vare':
						updateVareInfoHTML(obj);
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						}
						overlay.hide();
					break;
					default:
						overlay.hide();
					break;
				}
			},
			onFailure:function() {
				alert('Der skete en fejl!');
				overlay.hide();
			}
		}
	);
	return false;
}


function updateVareInfoHTMLTabel(obj,id) {
	$('vareDescription'+id).update(obj);

}

var lastVareInfoTabel = 0;
function updateVareInfoTabel(vareId,katId) {
	if (vareId == 0) return false;
	if (vareId == lastVareInfoTabel) return false;


	lastVareInfoTabel = vareId;
	var parms = '&id='+vareId;
	var ax = new Ajax.Request(
		VAREINFO+'/vareinfo',{
			method:'post',
			parameters:parms,
			onSuccess:function(response,json) {
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
//				console.log(text);
				updateVareInfoHTMLTabel(text,katId);
			},
			onFailure:function() {
				alert('Der skete en fejl!');
				overlay.hide();
			}
		}
	);
	return false;
}

function updateByNavn(obj, by) {
	var bynavn = obj['bynavn'];
	if (bynavn == undefined) bynavn = '';
	by.value = bynavn;
}

var typingPostnr = false;
var typingPostnrInt = null;
function testGetByFromPostnr(ele,bynavn) {
	typingPostnr = true;
	clearTimeout(typingPostnrInt);
	typingPostnrInt = setTimeout(function(){GetByFromPostnr($F(ele),bynavn)},500);
}

var prevPostnr = null;
function GetByFromPostnr(postnr,ele) {
	if (postnr == prevPostnr) return;
	var ax = new Ajax.Request(
		VAREINFO+'/postnr', {
			parameters:postnr,
			method:'post',
			onSuccess:function(response,json) {
				prevPostnr = postnr;
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'update-bynavn':
						updateByNavn(obj, ele);
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						}
						buyRunning = false;
					break;
				}
			},
			onFailure:function() {
				if (id && antal) {
				//	location.href = '/index/basket?add='+id+'&antal='+antal;
				}
				buyRunning = false;
			}
		}
	);
}

function updateKundeInfo(obj) {
	obj['navn'] = obj['kunde_fornavn'] + ' ' + obj['kunde_efternavn'];
	$H(obj).each(function(info){
		if ($(info.key)) {
			$(info.key).value = info.value;
		}
	});
}

function updateKundeInfoSuccess(type,tlf) {
	var msg = $('message');
	msg.update('');
	var fieldset = Builder.node('fieldset',{className:'message'},Builder.node('legend',{className:'message'},'Vigtigt!'));
	var content = Builder.node('div',{className:'fieldset-content'});
	var p = Builder.node('p');
	switch (type) {
		case 'kredit':
			p.innerHTML = (loggedInKredit);
		break;
		case 'rabat':
			p.innerHTML = (loggedInRabat);
		break;
		case 'kreditrabat': // both
			p.innerHTML = (loggedInRabatKredit);
		break;
	}
	content.appendChild(p);
	fieldset.appendChild(content);
	msg.appendChild(fieldset);
	msg.show();
}

function updateKundeInfoPassword(type,tlf) {
	var msg = $('message');
	msg.update('');
	var fieldset = Builder.node('fieldset',{'className':'message'},Builder.node('legend',{'className':'message'},'Vigtigt!'));
	var content = Builder.node('div',{'className':'fieldset-content'});
	var p = Builder.node('p');
	content.appendChild(p);
	var label = Builder.node('label',{'for':'kunde_kodeord'},'Kodeord')
	content.appendChild(label);
	var inputHolder = Builder.node('div',{'className':'inputText inputTextRed'});
	var input = Builder.node('input',{type:'password',name:'kunde_kodeord',id:'kunde_kodeord','className':'txt',onKeyUp:''});
	var button = Builder.node('button',{type:'button',onclick:'testGetPassword($(\'kunde_kodeord\'),'+tlf+')'},'Login');
	inputHolder.appendChild(input);
	inputHolder.appendChild(Builder.node('br'));
	var pb = Builder.node('p');
	pb.appendChild(button);
	inputHolder.appendChild(pb);
	inputHolder.appendChild(Builder.node('div',{'className':'spacer-2'}));
	content.appendChild(inputHolder);

	fieldset.appendChild(content);
	msg.appendChild(fieldset);
	switch (type) {
		case 'kredit':
			p.innerHTML = (kreditText+'<br />'+passwordText);
		break;
		case 'rabat':
			p.innerHTML = (kreditText+'<br />'+passwordText);
		break;
		case 'kreditrabat': // both
			p.innerHTML = (kreditText+'<br />'+passwordText);
		break;
	}
	msg.show();
	input.focus();
}

var typingPass = false;
var typingPassInt = null;
function testGetPassword(ele,tlf) {
	typingPass = true;
	clearTimeout(typingPassInt);
	typingPassInt = setTimeout(function(){getPassword($F(ele),tlf,ele)},1000);
}

var prevPassword = null;
function getPassword(password,tlf) {

	if (password == prevPassword) return;
	var ele = arguments[2] || false;

	var ax = new Ajax.Request(
		VAREINFO+'/kundepassword', {
			parameters:$H({'password':password,'tlf':tlf}).toJSON(),
			method:'post',
			onSuccess:function(response,json) {
				prevPassword = password;
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'success':
						if (obj['kunde_rabat'] == 1 && obj['kunde_kredit'] == 1) {
							updateKundeInfoSuccess('kreditrabat',tlf);
						} else if (obj['kunde_rabat'] == 1) {
							updateKundeInfoSuccess('rabat',tlf);
						} else if (obj['kunde_kredit'] == 1) {
							updateKundeInfoSuccess('kredit',tlf);
						}
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						}
					break;
				}
			}
		}
	);
}

var typingTlf = false;
var typingTlfInt = null;
function testGetKundeFromTlf(ele) {
	typingTlf = true;
	clearTimeout(typingTlfInt);
	typingTlfInt = setTimeout(function(){getKundeFromTlf($F(ele),ele)},700);
}

var prevTelefon = null;
function getKundeFromTlf(tlf) {
	if (tlf == prevTelefon) return;
	$('message').hide();
	$('message').update('');
	var ele = arguments[1] || false;
	var ax = new Ajax.Request(
		VAREINFO+'/kundeinfo', {
			parameters:tlf,
			method:'post',
			onSuccess:function(response,json) {
				prevTelefon = tlf;
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'update-kundeinfo':
						updateKundeInfo(obj);
						if (obj['kunde_rabat'] == 1 && obj['kunde_kredit'] == 1) {
							updateKundeInfoPassword('kreditrabat',tlf);
						} else if (obj['kunde_rabat'] == 1) {
							updateKundeInfoPassword('rabat',tlf);
						} else if (obj['kunde_kredit'] == 1) {
							updateKundeInfoPassword('kredit',tlf);
						}
					break;
					case 'reset':
						$('secureForm').getInputs().each(function(input){
						  if (input.type == 'text') {
  							input.value = '';
						  }
						});
						if (ele != false) {
							ele.value = tlf;
						}
					break;
					case 'update-kundeinfo-multiple':
						alert('der er flere adresser til det telefonnummer');
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						}
					break;
				}
			}
		}
	);
}

var buyRunning = false;
function basketClean() {
	if (buyRunning == true) return;
	if (!confirm('Vil du rydde indkøbskurven?')) return;
	buyRunning = true;
	var ax = new Ajax.Request(
		BASKET,{
			method:'post',
			parameters:'&cleanBasket=true',
			onSuccess:function(response,json) {
				if (!response.responseText) {
					if (ele) {
						posBuyMsg($(ele),'error');
					}
					return;
				}
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'update-basket':
						updateBasket(obj);
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						}
						buyRunning = false;
					break;
				}
			},
			onFailure:function() {
				if (ele) {
					posBuyMsg($(ele),'error');
				}
				buyRunning = false;
			}
		}
	);
	buyRunning = false;
	return false;
}

function buy() {
	if (buyRunning == true) return;
	buyRunning = true;
	var parms = '';
	if (arguments[0] && arguments[1]) { // antal og id
		antal = arguments[0];
		id = arguments[1];
		if (Number(antal) == antal) { //  && Number(antal) > 0
			parms = '&id='+id+'&antal='+antal;
		} else {
			alert('Antal skal være et tal større end 0 (nul).');
			return false;
		}
		if (id == 0) {
			alert('Vælg venligst en variant.');
			return false;
		}
	}
	var ele = false;
	if (arguments[2]) {
		var ele = arguments[2];
	}
	var ax = new Ajax.Request(
		BASKET,{
			method:'post',
			parameters:parms,
			onSuccess:function(response,json) {
				if (!response.responseText) {
					if (ele) {
						posBuyMsg($(ele),'error');
					}
					return;
				}
				try {
					var text = response.responseText || '[]';
				} catch(e) {
					var text = [];
				}
				try {
					var obj = text.evalJSON() || '';
				} catch(e) {
					var obj = {};
				}
				switch(json['do']) {
					case 'inline-basket':
						if (antal != 0) {
							if (ele) {
								posBuyMsg($(ele),'ok');
							}
						}
						updateBasket(obj);
					break;
					case 'warning':
						if (obj['msg']) {
							alert(obj['msg']);
						} else {
							if (ele) {
								posBuyMsg($(ele),'error');
							}
						}
						buyRunning = false;
					break;
				}
			},
			onFailure:function() {
				if (ele) {
					posBuyMsg($(ele),'error');
				}
				if (id && antal) {
				//	location.href = '/index/basket?add='+id+'&antal='+antal;
				}
				buyRunning = false;
			}
		}
	);
	buyRunning = false;
	return false;
}
