//PREVENT DOUBLE SUBMIT PLUG-IN
jQuery.fn.preventDoubleSubmit = function() {
  jQuery(this).submit(function() {
    if (this.beenSubmitted) {
      //alert("this is a FORM and a second SUBMIT has been STOPPED");
      return false;
    } else {
      this.beenSubmitted = true;
    }
  });
};

function initLogin() {
    //SHOW LOGIN
	$('a#showlogin').cluetip({
   		cluezIndex: 101,
    	cluetipClass: 'bluetip',
    	attribute:	'rel',
    	local: true,
    	hideLocal: false,
		//localPrefix: null,
		cursor: 'pointer', 
    	activation: 'click',
    	sticky: true, 
    	dropShadow: false, 
    	positionBy: 'fixed',
    	arrows: false, 
    	width: 360, 
    	topOffset: 25, 
    	leftOffset: -320, 
    	//splitTitle: '|',
    	closePosition: 'title',
    	closeText: 'Close',
    	showTitle: false
    });
}

function initErrors(container) {
	$("input.error",$(container))
	.cluetip({
		cluezIndex: 101,
		cluetipClass: 'errortip',
		attribute:	'data-message',
		splitTitle: '|',
		local: true,
		hideLocal: false,
		cursor: 'pointer', 
		activation: 'focus',
		sticky: true, 
		dropShadow: false, 
		positionBy: 'fixed',
		arrows: true, 
		width: 360 
		/*,topOffset: 0, 
		leftOffset: 0 */
	})
	.blur(function(){ 
		$(document).trigger('hideCluetip');
	});	

}

function initCompareBasket() {
	$('a.showcomparebasket').cluetip({
   		cluezIndex: 101,
    	cluetipClass: 'bluetip',
    	attribute:	'rel',
    	local: true,
    	hideLocal: false,
		//localPrefix: null,
		cursor: 'pointer', 
    	activation: 'click',
    	sticky: true, 
    	dropShadow: false, 
    	positionBy: 'bottomTop',
    	arrows: true, 
    	width: 360, 
    	topOffset: 25, 
    	leftOffset: -320, 
    	showTitle: true//,
    	/*onShow: function(ct, c){
    		ct.bind("mouseleave", function(){ $(document).trigger('hideCluetip'); });    		
    	}*/
    });
}

function showCompareBasket(from) {	
	//var offset = $(from).offset();
	//$("#comparebasket").show().offset({ top: offset.top+22, left: offset.left-115 });
}

function addCompare(from) {		
	var params = getParams(from);
	var comparebasket = $("#comparebasket");
	var size = parseInt(getParams(comparebasket).size);
	$.ajax({
		type: "GET",
		url: params.url+"/"+params.action,
		cache: false,
		error: function(){},
		success: function(){
			// if add
			if(params.action == "1") {
				var newaction = "2";
				size = size+1;
			}
			// if remove
			else if(params.action == "2") {
				var newaction = "1";
				size = size-1;
			}	
			// write changed values back to params
			setParam(from,"action",newaction);
			setParam(comparebasket,"size",size.toString());
			// toggle compbasket
			/*
			if(size>0) {
				$(comparebasket).show();
				}
			else {
				$(comparebasket).hide();
				}
			*/	
		},
		complete: function(){
			window.location.reload();	
		}
	});
}		

function resetCompare(from) {
	$.ajax({
		type: "GET",
		url: from.attr("href"),
		success: function(){				
			window.location.reload();
			/*
			$("input[type=checkbox]",".comparewrap")
				//uncheck all checkboxes on page
				.checkBox('changeCheckStatus', false)
				//change all actions back to "add"
				.each(function(){
					var params = getParams(this);
					var newaction = "1";
					setParam(this,"action",newaction);
				});	
			//set size of comparebasket to zero
			setParam($("#comparebasket"),"size","0");
			// disable comparison buttons
			$("a","#comparebasket").attr("class","disabled");
			*/
		}	
	});
}

function showTab(tab) {
	var params = getParams(tab);
	//var path = paramsToPath(params);
	//remove all
	var tabwrap = $(".tabbed");
	$("div.tabbox", tabwrap).hide();
	$("li a",".tabmenu").removeClass("active");	
	//set current
	//$(tab).parents("li").addClass("active");
	// changed to indirect method to cope with external tab-switches
	$("a","#"+params.show+"tab").addClass("active");
	$("#"+params.show).show();
}

//FILTER FUNCTIONS

//check if something is choosen
function countCheckedFilterItems() {	
	var checkcount = 0;
	$("input[type=checkbox]", "#productfilter").each( function(i){
		if($(this).is(":checked")){
			checkcount++;		
		}
	});
	return checkcount;
}

//initialize correct filter-mode			
function initFilter() {
	var	params = getParams($("body"));	
	var filter = $("#productfilter");
	if(params.viewstate == "filterProductsView") {
		var checkcount = countCheckedFilterItems();
		if(checkcount>0) {
			// auto-expand if filter was run
			$(".processboxcontent", filter).show();
			$("#productfilter").addClass("filterexpanded");
		} else {
			$(".processboxcontent",filter).hide();
			$("#productfilter").removeClass("filterexpanded");
		}
	/*} else if(filter.hasClass("accessoryfilter")) {
			// auto-expand if accessory
			$(".processboxcontent", filter).show();
			$("#productfilter").addClass("filterexpanded");*/
	} else {
		$(".processboxcontent",filter).hide();
		$(filter).removeClass("filterexpanded");
	}
	enableFilter();			
}

//enable submit only when something is chosen
function enableFilter() {
	var checkcount = countCheckedFilterItems();
	if(checkcount>0) {
		$("#filtersubmit").removeAttr("disabled").removeClass("disabled");
	} else {
		$("#filtersubmit").attr("disabled","disabled").addClass("disabled");
	}
}

//expand/collapse filterbar
function toggleFilterBox(box) {
    $(".processboxcontent", $(box)).animate({ "height": "toggle", "opacity": "toggle"}, 200, "", function(){
    });
    $(box).toggleClass("filterexpanded");	   
}

function toggleItemBox(box) {
    $(".itemboxcontent", $(box)).animate({ "height": "toggle", "opacity": "toggle"}, 200, "", function(){
        $(".toggle", $(box)).animate({"opacity": "toggle"}, 200);
    });   
}

function showSetupBox(boxid) {
	//close open boxes
	closeSetupBoxes();
	//open the choosen
	$("#"+boxid).show();
	$("#"+boxid+"btn").addClass("showsetupactive");
}

function closeSetupBoxes() {
	$("a.showsetup","#step1").removeClass("showsetupactive");
	$("li.accessories, li.services, li.subscriptionoptions").hide();
	}


/*	//STEP 1:PRODUCT SETUP FUNCTIONS
	$("a.showsetup","#step1").click(function() { 
		var btn = $(this);
		var boxid = btn.attr("id").substring(0,btn.attr("id").length-3);
		showSetupBox(boxid);
	});
	$("a.hidesetup","#step1").click(function() { 
		closeSetupBoxes();
	});
*/	
	
function initSetupBoxes() {
	if($("#basket").length>0) {
		var params = getParams("#basket");
		var basketno = params.lastBasketItemNr;
		var event = params.lastEventId;
		
		if(event !="") {
			//subscription options
			if(event == "changePricePlan" || event == "changePricePlanOption" || event == "submitGSMNumber" || event == "submitSMSCode"){
				$("a#subscriptionoptions"+basketno+"btn").click();			
			}
			//services
			else if(event == "addService"){
				$("a#services"+basketno+"btn").click();
			}
			//accessories
			else if(event == "addAdditionalItem"){
				$("a#accessories"+basketno+"btn").click();	
			}
			//delete
			//else if(event == "deleteFromBasket" || event == "removeService" || event == "removeAdditionalItem" || event == "removeProductOption"){
			//}
			
			var basketitem = $("tr#mainproductrow"+basketno);
			if($(basketitem).offset().top > $(window).height()){
				$.scrollTo(basketitem,300,{over:-0.4});
			}
		}
	}
}

//OPTIONAL PRODUCT PRICE UPDATER 
function updatePrices(priceparamstag) {	
	var priceparams = getParams(priceparamstag);			
	var	bundletotalprice = (eval(priceparams.bundletotalprice) + eval(priceparams.optionalitemprice)).toFixed(2);
	var bundleminimalprice = (eval(priceparams.bundleminimalprice) + eval(priceparams.optionalitemprice)).toFixed(2);
	// nice price
	bundletotalprice = bundletotalprice.replace(/\./, ",").replace(/,00/, ",-");
	bundleminimalprice = bundleminimalprice.replace(/\./, ",").replace(/,00/, ",-");						
	$("#bundletotalprice"+priceparams.bundleid).html(bundletotalprice);
	$("#bundleminimalprice"+priceparams.bundleid).html(bundleminimalprice); 	
 	return true; 
}


//LAST ACTION CALLBACK
function lastActionCallback() {
	var params = getParams($("body"));			
	if(params.lastAction=="addToBasket") {
		$("#gotocheckoutbtn").fadeOut(150).fadeIn(150).fadeOut(150).fadeIn(250);
	}
}



//WHEN DOC IS READY *******************************************************************************************************************
$(document).ready(function() {
	
    var ie6 = (jQuery.browser.msie && jQuery.browser.version < 7);

	//PREVENT DOUBLE SUBMITS / DOUBLE-RUN OF LINKS
	$("form").not("form[name=thefilter]").preventDoubleSubmit();
	/*
		$("a").not(".addtobasket, #comparebasket a, .deleterow").click(function(){
			if($(this).attr("href") && $(this).attr("target").length == 0) {
				$(this).unbind("click");
				$(this).bind("click", function(){ 
					//alert("this is a REAL LINK and a second run has been STOPPED");
					return false;
				});
			} 
			//else { alert("this is NOT a real LINK"); }	
		});
		unbinding gets cached in newer browsers and therefore had to be removed
	*/
	$("a.disabled").live("click", function(){ return false; });	

    //PREVENT BROWSER CACHING OF CERTAIN FORMS
	if($("form.nocache").length>0){ $("form.nocache").get(0).reset(); }

	
	// VERTICAL TABLE HEADERS
	$.each( $(".verticaltext"), function () { $(this).html($(this).text().replace(/(.)/g, "$1<br />")); } );

	
	//CUSTOM CHECKBOXES
	$("input[type=checkbox].customcheckbox").checkBox();
	$(":checkbox","#productfilter").checkBox();
	$("input[type=radio].customradio").checkBox();

	// PRODUCTDETAIL TABS
	$("a",".tabmenu").click(function() { showTab(this); });
	$(".showtab").click(function() { showTab(this); });	
	
    // PRODUCTDETAILS IMAGES
	if($("img","div#mainproductimagecycle").length>1) {
	    $("div#mainproductimagecycle").cycle({ 
	        fx:     'fade', 
	        speed:  '500', 
	        timeout: 0, 
	        pager:  'ul#thumblist', 
	         
	        // callback fn that creates a thumbnail to use as pager anchor 
	        pagerAnchorBuilder: function(idx, slide) { 
	            return '<li><a name=""><img src="' + slide.src + '" alt="' + $(slide).attr("alt") + '" /></a></li>'; 
	        } 
	    });
	}   

	 //OPTIONAL PRODUCT CHOOSER
    //$(":radio","tr.firstitem").click(); todo!!
    $(":radio, :radio+span.ui-radio",".optionalproducttable").click(function(){ 
		//select row
		$("tr",$(this).parents("table")).removeClass("selected");
		$(this).parents("tr").addClass("selected");
		
		// get params for both default and custom radios
		var params = getParams($(":radio",$(this).parents("td")));
		
  		// setting optionalProductId in buylink
  		if($(".addtobasket"+params.bundleid).length>0) {
			var url = $(".addtobasket"+params.bundleid).attr("href").replace(/\s+/g,"");
	  		var newquery = $.query.load(url).set("optionalProductId", params.optionalproductid);
	  		$(".addtobasket"+params.bundleid).attr("href", url.split("?")[0]+newquery);
	  		
	  		// setting captions
	  		//$("#optionalproductname"+params.bundleid).html(params.name);
	  		//$("#optionalproductproducer"+params.bundleid).html(params.producer);
			
			//set price params
			var priceparamstag = $("#bundlesubchooser"+params.bundleid);			
			setParam(priceparamstag, "optionalitemprice", params.optionalitemprice);
			
			//calc prices
			updatePrices(priceparamstag);
    	}	
	});

    //BUNDLE ABOCHOOSER
    $(".bundlesubchooser").change(function(){
	    var selectparams = getParams($(this));
	    var params = getParams($("option:selected",$(this)));
    	var buylink = $(".addtobasket"+params.bundleid);
	  	//only if buylink available
    	if($(".addtobasket"+params.bundleid).length>0) {
	  		var query = buylink.attr("href").replace(/\s+/g,"");
		  	if(query!=null) {
	    		// setting subscription in buylink
				var newquery = query.replace(selectparams.subscriptionname,params.subscriptionname);
			  	buylink.attr("href", newquery);
		    	//setting new params (new subscription, prototype in buylink)
			  	setParam($(this), "subscriptionname", params.subscriptionname);
		    	setParam(buylink, "prototype", params.prototype);
		  	}
	  	}

    	
    	//set price params
		var priceparamstag = $(this);			
		setParam(priceparamstag, "bundletotalprice", params.price);
		setParam(priceparamstag, "bundleminimalprice", params.minimalprice);
		
		//set new default subscription option name
		$("#subscriptionoption"+params.bundleid).html(params.subscriptionoption);
		
		//hide all priceplan prices
		$("#subscriptioninfo").hide();
		$(".subscriptionblock","#subscriptioninfo").hide();

		//toggle yearprice and subscriptionoption
		if(params.prototype == 2){
			$("#yearprice"+params.bundleid).hide();
			$("#pricecondition"+params.bundleid).hide();
			}
		else {
			$("#yearprice"+params.bundleid).show();
			$("#pricecondition"+params.bundleid).show();
			//show corresponding priceplan prices
			$("#subscriptioninfo").show();
			$("#subscription"+params.subscriptionid,"#subscriptioninfo").show();
			//mark right priceplan in table
			//$("tr.selectedAbo","li#priceplans").removeClass("selectedAbo").addClass("aborow");
			//$("tr#"+params.subscriptionid,"li#priceplans").addClass("selectedAbo").removeClass("aborow");
			}
			
		//toggle radio in pricelist
		$("input[name=subscriptionpricesradio]").each(function(){
			if($(this).val()==params.subscriptionid){
				$(this).attr('checked', true);
				}
			else{
				$(this).attr('checked', false);
				}	
			});		
			
		//calc prices
		updatePrices(priceparamstag);		
    });
    
      //BUNDLE ABOCHOOSER PRICELIST RADIO
		$("input[name=subscriptionpricesradio]").click(function(){
			var newsub = $(this).val();
			$("option",".bundlesubchooser").each(function(){
				if($(this).val()==newsub){
					$(this).attr("selected", "selected");
					$(".bundlesubchooser").change();
					}
				else{
					$(this).removeAttr("selected");
					}
			});			
		});
	  
	//RUN LAST ACTION BASED CALLBACKS
	lastActionCallback();
	 
    //ADD TO BASKET
	$(".addtobasket").click(function(){
		if($("#minibasket").length && $(this).attr("href")!=null) {
			var params = getParams($(this));
			var isSubscribable = 0;
			var basketparams = getParams($("#minibasket"));
			//check for contracts in basket and set flag if found
			$(".subscriptionrow","#minibasket").each(function(i){
				var subparams = getParams($(this));
				if(subparams.prototype == 1) { isSubscribable = 1; }
			});
			// show alert if basket is not multi-subscribable
			if(basketparams.isMultiSubscribable == "false" && params.prototype == 1 && isSubscribable == 1) {
				if(confirm("Det er kun mulig å kjøpe ett abonement pr. bestilling. \nDu har allerede lagt inn en vare som forutsetter abonnement. \nØnsker du å slette ditt forrige valg og legge inn dette som nytt valg?")) {
					return true;		
				}
				else { return false; }
			} 
			return true;
		}		
	});

	// FILTER FUNCTIONS
	initFilter();
	$("#showfilter","#productfilter").click(function() { toggleFilterBox($("#productfilter")); });   
	$(".filterlistitem span, label, input[type=checkbox]","#productfilter").click(function() { enableFilter(); });
    
    $("select[name=filterSubscription],select[name=sortingChange]").change(function(){
	   window.location = $(":selected",$(this)).val();
	});
	
	//MINIBASKET ABO-CHOOSER
	$(".minibasketsubchooser").change(function(){
		var params = getParams($(this));
		window.location=params.url+$(this).val();
		});

    //ITEMTABLE (SHOPPING BASKET)
    $("a.showdetailsbtn","#step1").click(function() {
        var row = $(this).parents("tr").next();
        //var col = $("td.productdetailscol", row);
        var det = $("div.productdetailswrapper", row);
        if(row.is(":visible")) {
            det.hide("slide", { direction: "up" }, 400, function(){ row.hide(); });
        }
        else {
            row.show();
            det.show("slide", { direction: "up" }, 400);
        }
    });
    // FOCUS CITY AFTER ZIP-SUBMIT
    if($("input#zip","#step2").val()>0){ $("input#city").focus(); }
    

    // CLUETIP SETUP
    $.cluetip.setup ({
        insertionType:    'appendTo',   // how the clueTip is inserted into the DOM
                                        // possible values: 'appendTo', 'prependTo', 'insertBefore', 'insertAfter'
        insertionElement: 'body'      // where in the DOM the clueTip is to be inserted 
        });
	//CLUETIP CLICK-HELP
	$('a.tipclick').cluetip({
   		cluezIndex: 101,
    	cluetipClass: 'bluetip',
    	attribute:	'rel',
    	local: true,
    	hideLocal: false,
		//localPrefix: null,
		cursor: 'pointer', 
    	activation: 'click',
    	sticky: true, 
    	dropShadow: false, 
    	positionBy: 'auto',
    	arrows: true, 
    	width: 360, 
    	//topOffset: 30, 
    	//leftOffset: 90, 
    	//splitTitle: '|',
    	closePosition: 'title',
    	closeText: 'Close',
    	showTitle: false
    });
	// CLUETIP REL/CLICK (TRACKING)
	$(".tiprel").cluetip({
		cluezIndex: 101,
		cluetipClass: 'bluetip', 
		attribute:	'rel',
    	local: true, 
    	hideLocal: false,
    	//localPrefix: null,
    	cursor: 'pointer', 
    	activation: 'click', 
    	dropShadow: false, 
    	positionBy: 'auto',
    	sticky: true,
    	arrows: true,
    	//width: 230, 
    	//topOffset: -2, 
    	//leftOffset: -10,
    	closePosition: 'title',
    	closeText: 'Close',
    	showTitle: true
	});
	$("#showminibasket").cluetip({
		cluezIndex: 101,
		cluetipClass: 'bluetip',
		attribute: 'rel',
		local: true,
		hideLocal: false,
		cursor: 'pointer', 
		activation: 'hover',
		sticky: false, 
		dropShadow: false, 
		positionBy: 'auto',
		arrows: true,
		width: 360,
		/*
		topOffset: 0, 
		leftOffset: -300,
		*/
    	closePosition: 'title',
    	closeText: 'Close',
    	showTitle: false
	});
   /*$("#showlogin").click(function(){
    	$("#loginbox").show();
    	$("form[name=loginform]").show();
    	return false;
 	});*/
     $("#cancellogin, #cancelresetpassword").click(function(){
    	$("form[name=resetpasswordform]").hide();
    	$("form[name=loginform]").show();
    	$("#loginbox").hide();
    	$(document).trigger('hideCluetip');
    	return false;
    });   	
    $("#showresetpassword").click(function() {
	   //$("#loginbox").show();
	   $("form[name=loginform]").hide();
	   $("form[name=resetpasswordform]").show(); 
	   return false;
   	});	
	
	//SHOW FRAKTSJEKK
    $(".showdeliverypricecheck").click(function(){
    	$("html, body").animate( { scrollTop: 0 }, 'fast' );
    	$("#deliverypricecheck").show();
    	return false;
 	});
		
	//CLUETIP CONTEXT HELP
	/*if($.browser.safari) { var clueLeftOffset = -117; } 
	else { var clueLeftOffset = -130; }	
	$(".title").cluetip({
		positionBy: 'fixed',
		splitTitle: '|',
		leftOffset: clueLeftOffset,
		topOffset: 	20,
		width:		270,
		dropShadow: false
	});	*/

    
    $(".returnsubmit").keypress(function(e){ 
		if (e.which == 13 ) { $(this).parents("form").submit(); } 
		});	       	
    
    //show/hide div
    $("a.expanddiv").click(function() {
        var div = $(this).attr("id");
        $("div."+div).toggle();
        });
    
    //SUBMIT FORM WITH LINK
    $('a.submitform').click(function() {
        var params = getParams($(this));
        var thisform = $(this).parents("form");        
        if(params && params.action){
            thisform.attr("action", params.action);
            }
        $(this).parents("form").submit();
        });   
   
   	// Shake cluetip concept
    /*$("a.loginbtn").click(function() {
        $(this).parents("div.cluetip-default").effect("shake", { times: 3, distance: 10 }, 50);
        });*/
    
    //VERIFY PASSWORD && CONFIRM PASSWORD
    $("a.confirmPassword").click(function(){
    	if($(".password").val() != $("#confirmpassword").val()){
    	   $("#confpassworderror").show();
    	   $("#error").show();
    	   $("#confirmpassmsg").show();
    	   return false;
    	}
    	else {
    	   $(this).parents("form").submit();
    	}
    });
    
    //HIDDEN ONLOAD TO GET RIGHT POSITION...
    $("#confpassworderror").hide();


	//STEP 1: BOX-TOGGLE
	$(".itemboxheader:has('.toggle')","#step1").click(function() { toggleItemBox($(this).parents(".itembox")); });
	
	// auto-toggle and focus first cart with open sms-verification
	/*if($("#smscode, #gsmnumber").length) {
		var box = $("#smscode, #gsmnumber").parents(".itembox");
		box.each(function(){
			toggleItemBox($(this));
			});
		var cart = $(box).parent().prev().find(".itembox");	
		$.scrollTo($(cart));	
	}*/	

	//STEP 1:PRODUCT SETUP FUNCTIONS
	$("a.showsetup","#step1").click(function() { 
		var btn = $(this);
		var boxid = btn.attr("id").substring(0,btn.attr("id").length-3);
		showSetupBox(boxid);
	});
	$("a.hidesetup","#step1").click(function() { 
		closeSetupBoxes();
	});
	initSetupBoxes();

	 //STEP 1: SUBSCRIPTION OPTIONS
	 $(":radio",".subscriptionoptions").click(function(){ 
	 	$(this).parents("form").submit();
	 });

	//STEP 2: CHANGE DELIVERY ADSRESS
	$("a.togglechooser","#deliveryaddress").click(function(){
		$("#deliveryaddress").hide();
		$("#changedeliveryaddress").show();
	});
	$("a.togglechooser","#changedeliveryaddress").click(function(){
		$("#changedeliveryaddress").hide();
		$("#deliveryaddress").show();
	});
	$("input[type=radio]","#changedeliveryaddress").change(function(){
		alert("change!");
		$("#changedeliveryaddress").hide();
		$("#deliveryaddress").show();
		
	});
	
	//STEP 2: CHANGE INVOICE ADSRESS
	$("a.togglechooser","#invoiceaddress").click(function(){
		$("#invoiceaddress").hide();
		$("#changeinvoiceaddress").show();
	});
	$("a.togglechooser","#changeinvoiceaddress").click(function(){
		$("#changeinvoiceaddress").hide();
		$("#invoiceaddress").show();
	});
	$("input[type=radio]","#changeinvoiceaddress").change(function(){
		alert("change!");
		$("#changeinvoiceaddress").hide();
		$("#invoiceaddress").show();
		
	});
	  
	 //STEP 2: PAYMENT METHOD
	 $(":radio","#paymentmethod").click(function(){ 
	 	$("#eventId").val("changePaymentOption");
	 	$(this).parents("form").submit();
	 });
	  	 
	 //STEP 2: DELIVERY METHOD
	 $(":radio","#deliverymethod").click(function(){ 
	 	$("#eventId").val("changeDeliveryOption");
	 	$(this).parents("form").submit();
	 });
	 
	//STEP 3: ORDERCONFIRMATION METHOD
	 $(":radio","#orderconfirmationdetails").click(function(){
	 	var parli = $(this).parent().parent();
	 	var params = getParams(parli);
	 	
	 	$(".metadata",".optionlist").hide();
	 	$("input[name=basket.confirmByData]").attr("disabled","disabled");
	 	
	 	$(".metadata",parli).show();
	 	$("input[name=basket.confirmByData]",parli).attr("disabled","");
	 	$("input[name=basket.confirmByData]").val(params.val);
	 	
	 	$(this).parents("ul").find("li").removeClass("selected");
	 	parli.addClass("selected");
	 	
	 	if(params.confirmByDataContainer == 1) { $("#confirmByDataContainer").show(); }
	 	else { $("#confirmByDataContainer").hide(); }
	 	
	 });
	
	//STEP 3: SUMBIT CONFIRMATION DATA BEFORE SUBMIT TO DIBS
	$("#ccformsubmitbtn").click(function(){
		$("form[name=checkOutConfirmForm]").ajaxSubmit({
			beforeSubmit: function(formData, jqForm, options){ 
    			var callbackfield = $("input[name=callbackurl]");
    			var callbackurl = callbackfield.val();
    			var url = callbackurl.split("?")[0];
    			var oldquery = $.query.load(callbackurl);				
    			var newquery = "";
    			jQuery.each(formData, function(i,val) {
  			    	//val.name
			    	//val.value	
			    	newquery = oldquery.set(val.name.replace(/basket\./,""), val.value);
			    	oldquery = newquery;
			    });
			    callbackfield.val(url+newquery);
			},
			success:  function(){ 
				$("form[name=ccform]").submit(); 
			}
		});
		return false;
	});
	
	//COMPARISON ADD & REMOVE
	initCompareBasket();
	$(".addcompare").live("click", function(){ addCompare($(this)); });
    $("input[type=checkbox]",".comparewrap").live("click", function(){ addCompare($(this)); });
	//$(".showcomparebasket").live("click", function(){ showCompareBasket($(this)); });	
	$("#cluetip-close","#comparebasket").live("click", function(){ $("#comparebasket").hide(); });	
	
	//COMPARISON: RESET
	$("#resetcomparison").live("click", function(){ 
		resetCompare($(this),0);
		return false;
	});
		
	//COMPARISON FILTER
	$("#comparisonFilter").change(function(){
		var sel = $(":selected",$(this)).val();
		if(sel == "showall") {
			$("tr.itemgrouprow, tr.itemrow","#comparetable").show();
			}
		else {
			$("tr.itemgrouprow, tr.itemrow","#comparetable").hide();
			$("tr.itemgrouprow, tr.itemrow","#comparetable").filter(".itemgroup"+sel).show();
			}	
	});

	//GO TO ITEM DROP-DOWN
	$("select#gotoitemchooser").change(function(){
		var opt = $("option:selected",$(this));
		if(opt.not(".nooption")) {
			params = getParams(opt);
			window.location=params.url;	
		}
		else {
			return false;	
		}	
	});
	
	//ACCOUNT FUNCTIONS
	$("a.addrow").live("click", function(){ 
		row = $("tr.newrow", $(this).parents("table"));
		row.removeClass("markedrow").removeClass("error").toggle();
		$("input",row).removeClass("error");
		});
	$("a.editrow").live("click", function(){ 
		$(this).parents("tr.itemrow").hide().next().show();
		});
	$(".cancelrowedit").live("click", function(){ 
		$(this).parents("tr.itemrow").hide().prev().show();
	});
	
	//SAVE PARTIAL FORMS VIA AJAX AND PARSE RESPONSE
	$(".sendrow").live("click", function(){ 
		var row = $(this).parents("tr");
		var action = $(this).parents("form").attr("action");
		//var rowid = row.attr("id");
		var queryString = $("input",row).serialize();
		$.ajax({
			type: 'POST',
			url: action,
			data: queryString,
			//dataType: 'json',
			beforeSend: function() {
				//remove old error flags first
				row.removeClass("markedrow");
				$("input",row).removeClass("error");		
			},
			//error: function(data) {},
			success: function(data, textStatus, XMLHttpRequest) {				
				var ct = XMLHttpRequest.getResponseHeader("content-type") || "";
				if (ct.indexOf('json') > -1) {
					//if errors, hightlight fields and show errors
					if(data.result == "ERROR") {
						$.each(data.errors, function(i,val) {
							var input = $("input[name="+this.field+"]",row);
							input.addClass("error").attr("title"," |"+this.message);
						});
						initErrors(row);
					}
				}
				else if (ct.indexOf('html') > -1) {
			    	//if general error - and a complete page is returned – do nothing
					if (data.indexOf('html') > -1) {
						row.addClass("markedrow");
					}
					else {
			    	//inject changed row(s)
			    	row.after(data);
		    		row.remove().prev("tr").remove();
					}
			    }
			},
			complete: function(XMLHttpRequest, textStatus) {
				var reloadNeeded = XMLHttpRequest.getResponseHeader("RELOAD_REQUIRED") || "";			
				if (textStatus == "success" && reloadNeeded == "true"){ 
					window.location.reload();
				}	
			}
		});
		return false;
	});

	//DELETE ROW
	$("a.deleterow").live("click", function(){ 
		var row = $(this).parents("tr.itemrow");
		row.addClass("markedrow");
		if(confirm("Er du sikkert på at du vil slette markert rad?")){
			var action = $(this).attr("href");
			$.ajax({
				type: 'POST',
				url: action,
				//data: queryString,
				//dataType: 'json',
				//beforeSend: function() {},
				//error: function(data) {},
				success: function(data, textStatus, XMLHttpRequest) {				
					var ct = XMLHttpRequest.getResponseHeader("content-type") || "";
					if (ct.indexOf('json') > -1) {
						//if errors, collect and show errors
						if(data.result == "ERROR") {
							var errormsg = "";	
							$.each(data.errors, function(i,val) {
								errormsg = errormsg + this.field + ":\n" + this.message + "\n\n"
							});
							alert(errormsg);
						}
					}
					else if (ct.indexOf('html') > -1) {
						row.remove();
					}	
				}
			});
		}	
		row.removeClass("markedrow");
		return false;
	});
	
	
	//CUSTOM SELECTBOX
	/*$("select.customselect").selectbox({
	    inputClass: "selectbox", //css class for the input which will replace the select tag, display the background image
	    containerClass: "selectbox-wrapper", // The list container class (a div element)
	    hoverClass: "optionhover", // css class for the current element
	    currentClass: "selectedoption", // css class for the selected element
	    debug: true // debug mode on/off
	});*/
	
	//SORTABLE DATA GRIDS
	var sTable = $("table.sortable").dataTable({
		
		"bStateSave": true,
		"oLanguage": {
			"sProcessing": "Vennligst vent...",
			"sLengthMenu": "Vis _MENU_ resultater per side.",
			"sZeroRecords": "Ingen resultater funnet.",
			"sInfo": "_START_ – _END_ (fra _TOTAL_)",
			"sInfoEmpty": "0 – 0 (fra 0)",
			"sInfoFiltered": "(filtrert utifra _MAX_  resultater)",
			"sInfoPostFix": "",
			"sSearch": "Filtrer resultater:",
			"sUrl": "",
			"oPaginate": {
				"sFirst":    "Første",
				"sPrevious": "Forrige",
				"sNext":     "Neste",
				"sLast":     "Siste"
			}
		},
		"fnFooterCallback": function (nRow, aasData, iStart, iEnd, aiDisplay ) {					
			var sRow = $(".subtotalrow");						
			if(sRow.length>0){
				// check for columns to sum
				var cols=[];
				var tds = $("td.sumcol",nRow);
				$.each($("td.sumcol",nRow), function(i,val){
					cols.push($(this).parent().children().index($(this)))
				});
				// calculate and update subtotal cells
				$.each(cols, function(i,val){
					var currentCol= cols[i];							
					var total=0;
					for(var i=iStart;i<iEnd;i++){							
						total=total+parseInt(aasData[aiDisplay[i]][currentCol]);	
					}
					$(sRow.children().get(currentCol)).html(total);			
				});
				// show subtotals			   
				sRow.show();
			}	
		}
		
	});

	
}); // close doc ready
