	/* prevent defaul action */
	_preventDefault = function(event){
		if(event && event.preventDefault) event.preventDefault();
		else if(window.event && window.event.returnValue) window.eventReturnValue = false;
	}

	/* PRELOAD IMAGES */
	function MM_swapImgRestore(){
		//v3.0
		var i,x,a=document.MM_sr;
		for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++){
			if(x.src==""){
				x.style.backgroundImage=x.oSrc;
			}
			else x.src=x.oSrc;
		}
	}

	function MM_preloadImages(){
		//v3.0
		var d=document;
		if(d.images){
			if(!d.MM_p) d.MM_p=new Array();
			var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
			for(i=0; i<a.length; i++)
				if(a[i].indexOf("#")!=0){
					d.MM_p[j]=new Image;
					d.MM_p[j++].src=a[i];
				}
		}
	}

	function MM_findObj(n, d){
		//v4.01
		var p,i,x;
		if(!d) d=document;
		if((p=n.indexOf("?")) > 0 && parent.frames.length){
			d=parent.frames[n.substring(p+1)].document;
			n=n.substring(0,p);
		}
		if(!(x=d[n]) && d.all) x=d.all[n];
		for(i=0;!x&&i<d.forms.length;i++)
			x=d.forms[i][n];
		for(i=0;!x && d.layers && i<d.layers.length; i++)
			x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById)
			x=d.getElementById(n);
		return x;
	}

	function MM_swapImage(){
		//v3.0
		var i,j=0,x,a=MM_swapImage.arguments;
		document.MM_sr=new Array;
		for(i=0;i<(a.length-2);i+=3){
			if((x=MM_findObj(a[i]))!=null){
				document.MM_sr[j++]=x;
				if(!x.oSrc) x.oSrc=x.src;
				if(!x.src){
					x.oSrc = x.style.backgroundImage;
					x.style.backgroundImage="url("+a[i+2]+")";
				}
				else x.src=a[i+2];
			}
		}
	}
	/* PRELOAD IMAGES end */

	/* email validation */
	validate_email = function(_email){
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var address = _email;

		if(reg.test(address) == false) return "false";
		else return "true";
	}

	/* PRODUCT BUY */
	_doAjax = function(){
		var _prodnum = $("#prodnum").val();
		var _criteria = "";

		i = "0"
		$(".formselect").each(function(){
			_criteria = _criteria+"criteria["+i+"]="+$(this).val()+"&";
			i++;
		});
		if(_criteria != ""){
			_criteria = "&"+_criteria.replace(/^&+/,"");
		}

		if(_prodnum != ""){
			$.ajax({
				type: "POST",
				data: "prodid="+$("input[name=product]").val()+"&prodnum="+_prodnum+"&amount="+$("#amount").val()+_criteria,
				url: "modules/webshop/ajax/get_product_info.php",
				contentType: "application/x-www-form-urlencoded;charset=UTF-8",
				processData: false,
				dataType: "xml",
				success: function(xml){
					$(xml).find("result").each(function(){
						var error = $(this).find("error").text();
						var id = parseInt($(this).find("id").text());
						var media_id = parseInt($(this).find("media_id").text());
						var media_tmp_name = parseInt($(this).find("tmp_name").text());
						var productid = parseInt($(this).find("productid").text());
						var in_stock = parseInt($(this).find("in_stock").text());
						var in_order = parseInt($(this).find("in_order").text()); // not in use in gs-elektro
						var available = $(this).find("available").text(); // not in use in gs-elektro
						var always_in_stock = $(this).find("always_in_stock").text();
						var storageid = $(this).find("storageid").text(); // not in use in gs-elektro
						var info_text = $(this).find("info_text").text();
						var price = parseFloat($(this).find("price").text());
						var vat_price = parseFloat($(this).find("vat_price").text());
						var description = $(this).find("description").text();
						var amount = parseInt($(this).find("amount").text());
						var prodnum = $(this).find("prodnum").text();

						if(error == ""){
							if(always_in_stock == "1"){
								_text = "Lagerstatus: på lager";
							}
							else if(always_in_stock == "0" && in_stock == "0"){
								_text = "Lagerstatus: ikke på lager";
								$("#stockdivx").text(_text);
//								$("#amount").attr({"readonly":"readonly"});
//								$("#submitbutton").css({"display":"none"});
							}
/*
							else if(always_in_stock == "0" && in_stock < amount){
								_doAjax();
								_text = "Det er bare "+in_stock+" artikler på lager.";
								$("#stockdivx").text(_text);
								$("#amount").val(in_stock);
							}
*/
							/* check media */
							if(media_id == "0" || media_id == ""){
								if($("#defaultimage").val() != "0" || $("#defaultimage").val() != ""){
									media_id = $("#defaultimage").val();
								}
							}
							if(media_id != "0" || media_id != ""){
								$("#prodimagelink").attr({"href":media_tmp_name+"-"+media_id+"-large.jpg"});
								$("#prodimage").attr({"src":media_tmp_name+"-"+media_id+"-custom.jpg"});
							}
							$("#prodnum_span").text(prodnum);
							/* price calculations and corrections */
							if($("#mva_inkl").length > "0"){
								_textprice = correctPrice(price, ",", " ");
								$("#totalprice").text(_textprice);
								$("#totalprice2").val(price);
								$("#mva_inkl").text(vat_price);
							}
							else{
								_textprice = correctPrice(vat_price, ",", " ");
								$("#totalprice").text(_textprice);
								$("#totalprice2").val(vat_price);
							}
							$("#title").text(description);
							$("#info_text").html(info_text);
						}
/* for debuging! do not delete 
						else{
							$("#ajaxerror").css({"visibility":"visible"});
							$("#ajaxerror").html(error);
						}
*/
					});
				}
			});
		}
	};

	correctPrice = function(_val, _comma, _space){
		if(parseInt(_val) > "0"){
			_str = _val.toString();
			x = _str.split(".");
			x1 = x[0];
			if(x.length > 1){
				x2 = x[1].length == "1"?x[1]+"0":x[1] > "2"?x[1].toString(Math.round(parseInt(x[1])*100)/100):x[1];
			}
			else{
				x2 = "00";
			}
			var rgx = /(\d+)(\d{3})/;
			while(rgx.test(x1)){
				x1 = x1.replace(rgx, "$1"+_space+"$2");
			}
			return x1+_comma+x2;
		}
		else{
			return _val;
		}
	};

	_changeValue = function(val){
		var container = $("#amount");
		var current = parseInt(container.val(), 10);
		container.val(Math.max(1, current + val).toString());
		_doAjax();
	};

	$(document).ready(function(){
		/* restore textbox default */
		$("#search_field").focus(function(){
			$(this).val("");
		}).blur(function(){
			if($(this).val() == ""){
				$(this).val($(this)[0].defaultValue);
			}
		});
		/* lightbox */
		if($("#gallery a").length > "0"){
			$("#gallery a").lightBox();
			$("a[id*=lightboxitem_]").each(function(event){
				_preventDefault(event);
				$(this).lightBox();
			});
		}
		/* REGISTER/CHANGE USER */
		if($("#registeruser").length > "0" || $("#changeuser").length > "0"){
			$("#email").blur(function(){
				if($(this).attr("value") != ""){
					var _email = $(this).val().toLowerCase();
					var _email_len = _email.length;

					if(validate_email(_email) == "true"){
						$.get("modules/webshop/ajax/check_values.php", { email:_email }, function(data){
							data = data.split("|||");
							if(data[0] == 0){
								$("#error").remove();
								$("#email_div").css({"color":"#FF0000"});
								$("#email").after("<span id = \"error\" style = \"color: #FF0000;\"> E-mail exists.</span>");
								$("#email").val("");
							}
							else{
								$("#email_div").css({"color":"#000000"});
								$("#error").remove();
							}
						});
					}
					else{
						$("#error").remove();
						$("#email_div").css({"color":"#FF0000"});
						$("#email").after("<span id = \"error\" style = \"color: #FF0000;\"> '<b>"+_email+"</b>' is not valid format for e-mail.</span>");
						$("#email").val("");
					}
				}
			}), 
			$("#registeruser, #changeuser").submit(function(){
				var _error = $(".reg1").length;

				$("div#register").each(function(){
					$("div#register").children(".reg2").children("input").each(function(){
						div_id = $(this).attr("id")+"_div";
						$("#"+div_id).css({"color":"#FF0000"});

						if($(this).attr("value") == ""){
							if($("#mismatch").length > 0) $("#mismatch").remove();
							if($("#mismatch2").length > 0) $("#mismatch2").remove();
							_error++;
						}
						else{
							$("#"+div_id).css({"color":"#000000"});
							_error--;
							if($(this).attr("id") == "password2" && $("#password").attr("value") != $("#password2").attr("value")){
								$("#password_div").css({"color":"#FF0000"});
								$("#password2_div").css({"color":"#FF0000"});
								$("#password").after("<span id = \"mismatch\" style = \"color: #FF0000;\"> password mismatch</span>");
								$("#password2").after("<span id = \"mismatch2\" style = \"color: #FF0000;\"> password mismatch</span>");
								_error++;
							}
							else if($(this).attr("id") == "password2" && $("#password").attr("value") == $("#password2").attr("value")){
								$("#password_div").css({"color":"#000000"});
								$("#password2_div").css({"color":"#000000"});
								if($("#mismatch").length > 0)$("#mismatch").remove();
								if($("#mismatch2").length > 0)$("#mismatch2").remove();
							}
							if($(this).attr("id") == "email" && validate_email($(this).val()) == "false"){
								$("#error").remove();
								$("#email_div").css({"color":"#FF0000"});
								$("#email").after("<span id = \"error\" style = \"color: #FF0000;\"> '<b>"+$(this).val()+"</b>' is not valid format for e-mail.</span>");
								$("#email").val("");
							}
						}
					});
				});

				if(_error > "0"){
					alert("Fields marked with * are required.");
					return false;
				}
				else return true;
			});
		}
		/* same address as order in registration */
		$("#sameasorder").click(function(){
			$("#billing_address").val($("#order_address").val());
			$("#billing_zip").val($("#order_zip").val());
			$("#billing_city").val($("#order_city").val());
			$("#invoice_email").val($("#email").val());
		});
		/* PRODUCT BUY*/
		if($("#prodnum").length > "0"){
			_doAjax();
			$("#amount").keyup(function(){
				_doAjax();
			}),
			$(".formselect").change(function(){
				_doAjax();
			}),
			$("#plus").click(function(){
				_changeValue(1);
			}),
			$("#minus").click(function(){
				_changeValue(-1);
			});
		}
	});
	
	var timeout         = 500;
	var closetimer		= 0;
	var ddmenuitem      = 0;

	function jsddm_open(){
		jsddm_canceltimer();
		jsddm_close();
		ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');
	}

	function jsddm_close(){
		if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
	}

	function jsddm_timer(){
		closetimer = window.setTimeout(jsddm_close, timeout);
	}

	function jsddm_canceltimer(){
		if(closetimer){
			window.clearTimeout(closetimer);
			closetimer = null;
		}
	}

	$(document).ready(function(){
		$('#jsddm > li').bind('mouseover', jsddm_open);
		$('#jsddm > li').bind('mouseout',  jsddm_timer);
		if($("#SOK").length > "0"){
			$("#domsearch1145045332").bind("keypress", function(e){
				if(e.keyCode == 13){
					Shadowbox.open({
						player: "iframe",
						title: "Domene søk",
						width: 1280,
						height: 480,
						options: {
							onFinish: function(){
								$("#domsearch1145045332").submit();
							}
						}
					});
					return false;
				}
			});
			$("#SOK").click(function(event){
				Shadowbox.open({
					player: "iframe",
					title: "Domene søk",
					width: 1280,
					height: 480,
					options: {
						onFinish: function(){
							$("#domsearch1145045332").submit();
						}
					}
				});
			});
		}
	});

	document.onclick = jsddm_close;


