function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


function submitenter(myfield,e)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)
		{
			myfield.form.submit();
			return false;
		}
		else
			return true;
	}

function Anthem_Error(result) {
	alert('Anthem_Error was invoked with the following error message: ' + result.error);
}

function toggleItem(id){
	Element.toggle(id);
}


function productImageChange(imageObj, largeImageId){
  $(largeImageId).src = imageObj.src.replace("/medium/", "/large/");
}

function toggleImages(containerID){
	var images = $(containerID).select('img');
	images.each(function(image) {
		if (image.id.indexOf('largeImage')!=-1 && image.visible()){
			$(containerID).setStyle({
				marginLeft:'5px',
				float: 'right'
			});
		}
		else if (image.id.indexOf('largeImage')!=-1 && !image.visible()) {
			$(containerID).setStyle({
				marginLeft:'0px',
				float: 'left'
			});
		}
		image.toggle();
	});
}

function fireSearch(searchObj) {
    window.location = "/Pages/Search.aspx?search=" + encodeURIComponent(searchObj.value);
}

function updateDeliveryCountry(obj){
	obj = Element.extend(obj);
	$('deliveryCountry').innerHTML = obj.options[obj.selectedIndex].text;
}

function changePaymentOption(input){
	
	$('paymentDiv').select("div.creditpopup").each(Element.hide);
	$('paymentDiv').select("div.creditsecure").each(Element.hide);
	$('paymentDiv').select("div.creditquickpay").each(Element.hide);
	$('paymentDiv').select("div.bank").each(Element.hide);
	$('paymentDiv').select("div.cod").each(Element.hide);
	$('paymentDiv').select("div.account").each(Element.hide);
	$('submitButtons').select('input').each(Element.hide);
	
	
	var paymentOption = input.value;
		
	switch(paymentOption){
		case "1":
			$('paymentDiv').select("div.creditpopup").each(Element.show);
			$('paymentDiv').select("div.creditsecure").each(Element.show);
			$('paymentDiv').select("div.creditquickpay").each(Element.show);
			$('submitButtons').select('input.creditSubmit').each(Element.show);
			$('submitButtons').select('input.quickpaySubmit').each(Element.show);
			break;
		case "2":
		  $('paymentDiv').select("div.bank").each(Element.show);
		  $('submitButtons').select('input.bankSubmit').each(Element.show);
			break;
		case "3":
		  $('paymentDiv').select("div.cod").each(Element.show);
		  $('submitButtons').select('input.codSubmit').each(Element.show);
			break;
		case "4":
		  $('paymentDiv').select("div.account").each(Element.show);
		  $('submitButtons').select('input.accountSubmit').each(Element.show);
			break;
	}
}

function prodlist2_addItem(button, itemGuid){

  button = Element.extend(button);
  button.up(".prodlist2_variantTable").up().next(".prodlist2_Result").hide();
  button.up(".prodlist2_variantTable").up().next(".prodlist2_ajaxload").show();
  
  var resultDiv = button.up(".prodlist2_variantTable").up().next(".prodlist2_Result");
  
  var url = '/Pages/ProductList_View2_proto.aspx';
  
  var pars = 'function=addItem&itemGuid=' + itemGuid + "&resultDiv=" + resultDiv.id;
	var myAjax = new Ajax.Updater(
		resultDiv, 
		url,
		{
			method: 'post', 
			parameters: pars,
			evalScripts:true
		});
}

function prodlist2_addItem_result(divId, cartCountText, cartPriceText){
  divObj = $(divId);
  
  divObj.previous().hide();
  
  divObj.show();
  new Effect.Highlight(divObj);
}

function updateSmallCart(cartCountText, cartPriceText){
  $('smallCartCount').down(2).innerHTML = cartCountText;
  $('smallCartPrice').down(2).innerHTML = cartPriceText;
  
  new Effect.Highlight('smallCartCount');
  new Effect.Highlight('smallCartPrice');
}

function prodlist1_addItem_PreCallBack(button) {
    button = Element.extend(button);
    var orderResult = button.up('.divPricesOrder').next('.divPricesOrderResult');

    if (orderResult == null) {
        button.up('.divPricesOrder').insert({ after: '<div class="divPricesOrderResult"><div class="text"></div><div class="ajaxload" style="float: right; margin: 0;" /></div>' });
        orderResult = button.up('.divPricesOrder').next('.divPricesOrderResult');
    }

    orderResult.down('.text').innerHTML = "";
    orderResult.down('.ajaxload').show();
}

function locationGridAddressToggle(obj) {
    var addressDiv = Element.extend(obj).up('tr').down('.locationGridAddress');

    if (addressDiv.visible()) {
        Element.extend(obj).up('tr').down('td.locationGridColImg img').src = "/images/navigate_right.png";
        Effect.BlindUp(addressDiv, { duration: 0.5 });
    }
    else {
        Element.extend(obj).up('tr').down('td.locationGridColImg img').src = "/images/navigate_down.png";
        Effect.BlindDown(addressDiv, { duration: 0.5 });
    }
}
/* Item Sets */
function itemSetShowLoad(obj) {
    Element.extend(obj).up('.itemSetRow').down('.ajaxload').show()
}
function itemSetShowAddItemLoad(obj) {
    var orderResult = Element.extend(obj).up('.itemSetRow').down('.itemSetOrderResult');
    
    var orderResultText = orderResult.down('.itemSetOrderResultText');
    if (orderResultText != null) { orderResultText.hide() }
    
    orderResult.show();
    orderResult.down('.ajaxload').show();
}

function itemSetShowAddSetLoad(obj) {
    var orderResult = Element.extend(obj).up('.itemSetInfo').down('.itemSetOrderResult');

    var orderResultText = orderResult.down('.itemSetOrderResultText');
    if (orderResultText != null) { orderResultText.hide() }

    orderResult.show();
    orderResult.down('.ajaxload').show();
}


function itemSetShowAddSet2Load(obj) {
    var orderResult = Element.extend(obj).up('.itemSetTotal').down('.itemSetOrderResult');

    var orderResultText = orderResult.down('.itemSetOrderResultText');
    if (orderResultText != null) { orderResultText.hide() }

    orderResult.show();
    orderResult.down('.ajaxload').show();
}


/* Method used for password fields */
function changeInputType(
	  oldElm,
	  iType,
	  iValue,
	  blankValue,
	  noFocus) {
  if (!oldElm || !oldElm.parentNode || (iType.length < 4) ||
		!document.getElementById || !document.createElement) return;
  var isMSIE = /*@cc_on!@*/false;
  if (!isMSIE) {
    var newElm = document.createElement('input');
    newElm.type = iType;
  } else {
    var newElm = document.createElement('span');
    newElm.innerHTML = '<input type="' + iType + '" name="' + oldElm.name + '">';
    newElm = newElm.firstChild;
  }
  var props = ['name', 'id', 'className', 'size', 'tabIndex', 'accessKey'];
  for (var i = 0, l = props.length; i < l; i++) {
    if (oldElm[props[i]]) newElm[props[i]] = oldElm[props[i]];
  }
  newElm.onfocus = function() {
    return function() {
      if (this.hasFocus) return;
      var newElm = changeInputType(this, 'password', iValue,
		  (this.value.toLowerCase() == iValue.toLowerCase()) ? true : false);
      if (newElm) newElm.hasFocus = true;
    } 
  } ();
  newElm.onblur = function() {
    return function() {
      if (this.hasFocus)
        if (this.value == '' || (this.value.toLowerCase() == iValue.toLowerCase())) {
        changeInputType(this, 'text', iValue, false, true);
      }
    } 
  } ();
  newElm.hasFocus = false;
  if (!blankValue) newElm.value = iValue;
  oldElm.parentNode.replaceChild(newElm, oldElm);
  if (!isMSIE && !blankValue) newElm.value = iValue;
  if (!noFocus || typeof (noFocus) == 'undefined') {
    window.tempElm = newElm;
    setTimeout("tempElm.hasFocus=true;tempElm.focus();", 1);
  }
  return newElm;
}

/* loadevents */
Event.observe(window, "load", function() {
    // Find all elements that use that given CSS class
    var elements = $$("ul.linkList");
    elements.each(
        function(ul) {
            ul.select('li').each(
            function(li) {
                // Assign the onclick method to the element
                Event.observe(li, "click", this.liClickLink);
                Event.observe(li, "mouseover", function(event) { this.addClassName('over') });
                Event.observe(li, "mouseout", function(event) { this.removeClassName('over') });

            });
        }
    );
}

)

function liClickLink(event) {
    document.location = this.down('a').href;
}

var lastQuery

var superSearch =
{
    elements:{
        textBox: null,
        submitBtn: null,
        results: null,
        resultsContent: null
    },
    settings:{
        minQueryLength: 3,
        searchUrl: '/pages/search_prototype.aspx'
    },
    initializeSearch: function()
    {
		
		//Hvis supersøgeren er tændt
		if ($('ssBox') != undefined){
			superSearch.elements.textBox = $('ssBox').down('.ssBoxTextDiv input');
			superSearch.elements.submitBtn = $('ssBox').down('.ssBoxButtonDiv input');
			superSearch.elements.results = $('ssResult');
			superSearch.elements.resultsContent = $('ssResultContent');
			//superSearch.elements.textBox.focus();
			
			Event.observe(superSearch.elements.textBox, "keyup", superSearch.ssTextBoxOnKeyUp);
			Event.observe(superSearch.elements.textBox, "keydown", superSearch.ssTextBoxOnKeyDown);
			Event.observe(superSearch.elements.textBox, "blur", superSearch.ssTextBoxOnBlur);
			Event.observe(superSearch.elements.textBox, "focus", superSearch.ssTextBoxOnFocus);
			
			superSearch.elements.textBox.autocomplete = "off";
		}
    },
    ssTextBoxOnKeyUp : function (e){
        // arrow up(38) or down(40) or enter(13)
		if (e.keyCode == 38 || e.keyCode == 40 || e.keyCode == 13 || e.keyCode == 27)
			if (e.keyCode == 38){
				//alert("op");
				ssResultNavigation('up');
			}
			if (e.keyCode == 40){
				//alert("ned");
				ssResultNavigation('down');
			}
			if (e.keyCode == 13){
				if (ssResultLink!=''){
					clearOnHref();
					document.location.href = ssResultLink;
				}
			}
			if (e.keyCode == 27){
				superSearch.hideResults();
				lastQuery = '';
				superSearch.elements.textBox.blur();
			}
        else{
        	var query = trim(superSearch.elements.textBox.value);
            //alert(query);
            if (query.length >= superSearch.settings.minQueryLength && lastQuery != query){
				superSearch.timer = clearTimeout(superSearch.timer);
				superSearch.timer = setTimeout("callQuery();", 500);
                lastQuery = query				
            } else if (query.length < superSearch.settings.minQueryLength) {
				superSearch.timer = clearTimeout(superSearch.timer);
				superSearch.hideResults();
				lastQuery = '';
			}
        }
    },
    ssTextBoxOnKeyDown : function (){
		
    },
    ssTextBoxOnBlur : function (){
		setTimeout('if (clickeditem != true){superSearch.hideResults();lastQuery = \'\';}',200);
    },
    ssTextBoxOnFocus : function (){
		if (superSearch.elements.textBox.value != '' && superSearch.elements.textBox.value != superSearch.elements.textBox.title){
			var query = trim(superSearch.elements.textBox.value);
			superSearch.performSearch(query);
			lastQuery = query;        
		}
    },
    ssTextBoxOnKeyBlur : function (){
        
    },
    showLoad : function(){
        
    }
    ,
    hideLoad : function(){
        
    },
    showResults : function(){
        if (!superSearch.elements.results.visible())
			if (Prototype.Browser.IE){
			superSearch.elements.results.show();
			} else{
			Effect.Appear(superSearch.elements.results, { duration: 0.2 });
			}
			ssResultArrayId = [];
			ssResultArrayHref = [];
			ssResultArray = [];
			ssResultsToArray();
			clickeditem = false;
	}
    ,
    hideResults : function(){
        if (superSearch.elements.results.visible()){
			if (Prototype.Browser.IE){
				superSearch.elements.results.hide();
			} else {
            	Effect.Fade(superSearch.elements.results, { duration: 0.2 });
			}
			clearResultNavigation();
		}
   	 },
    performSearch : function(query){
        var pars = $H({q:query});
		var ajaxError = false;
		$('ssBox').down('img').style.display = 'block';
		new Ajax.Updater(
			superSearch.elements.resultsContent, 
			superSearch.settings.searchUrl,
			{
				method: 'get', 
				parameters: pars,
				evalScripts:true,
				onFailure: function(){ ajaxError=true;},
				onComplete: function(){ if(ajaxError!=true){superSearch.performSearchOnSuccess()} else {superSearch.perform500Response()}}
				
			});
		
    },
	perform500Response : function(){
        var pars = $H({error: 'true'});
		new Ajax.Updater(
			superSearch.elements.resultsContent, 
			superSearch.settings.searchUrl,
			{
				method: 'get', 
				parameters: pars,
				onComplete: function(){ superSearch.performSearchOnSuccess()}
				
			});
		
    },
    performSearchOnSuccess: function(response)   {
		setTimeout('$(\'ssBox\').down(\'img\').style.display = \'none\';',500);
        if (superSearch.elements.results.innerHTML.length>0){
            superSearch.showResults();
			$('ssResult').observe('mousemove', lookForLiInResult);
			$('ssResult').observe('click', goToOnClick);
		} else {
            superSearch.hideResults();
			$('ssResult').stopObserving('mousemove', lookForLiInResult);
			$('ssResult').stopObserving('click', goToOnClick);
		}
    }
    /* Super Search methods */
}

Event.observe(window, "load", superSearch.initializeSearch);

function callQuery(){
	superSearch.performSearch(superSearch.elements.textBox.value);
}

function lookForLiInResult(event) {
	var elt = Event.findElement(event, 'li');
	if (elt != undefined && ssResultCursor != ssResultArrayId.indexOf(elt.readAttribute('id'))){
	ssResultCursor = ssResultArrayId.indexOf(elt.readAttribute('id'));
	ssActivateItem(elt.readAttribute('id'));
	}
}

var clickeditem = false;
function goToOnClick(event) {
	var elt = Event.findElement(event, 'li');
	if (elt != undefined){
	clickeditem = true;
	ssGoToItem(elt.readAttribute('id'));
	}
}

function AjaxBackButtonRefresh()
{
false;
}

var ssResultArrayId = [];
var ssResultArrayHref = [];
var ssResultArray = [];
var ssResultCursor = -1;
var ssResultLink;

function ssResultNavigation(dir){
	if (dir == 'up'){
		ssResultCursor--;
		if (ssResultCursor>-1){
			ssResultLink = ssResultArray[1][ssResultCursor];
			ssActivateItem(ssResultArray[0][ssResultCursor]);
		} else {
			ssResultCursor++;
		}
	} else if (dir == 'down'){
		ssResultCursor++
		if (ssResultCursor<ssResultArrayId.length){
			ssResultLink = ssResultArray[1][ssResultCursor];
			ssActivateItem(ssResultArray[0][ssResultCursor]);
		} else {
			ssResultCursor--;
		}
	}
	
}

function ssResultsToArray(){
	if ($('searchResultGroup_1') != undefined){
		var ssGroupUl = $('searchResultGroup_1').up('ul').childElements();
		for(ssg=0; ssg < ssGroupUl.length; ssg++){
			ssResultArrayId.push(ssGroupUl[ssg].readAttribute('id'));
			ssResultArrayHref.push($(ssGroupUl[ssg].readAttribute('id')).down('a').readAttribute('href'));
		}		
	}
	if ($('searchResultItem_1') != undefined){
		var ssItemsUl = $('searchResultItem_1').up('ul').childElements();
		for(ssi=0; ssi < ssItemsUl.length; ssi++){
			ssResultArrayId.push(ssItemsUl[ssi].readAttribute('id'));
			ssResultArrayHref.push($(ssItemsUl[ssi].readAttribute('id')).down('a').readAttribute('href'));
		}		
	}
	ssResultArray = [ssResultArrayId,ssResultArrayHref];
}


function ssActivateItem(id){
	for(ssAI=0; ssAI < ssResultArrayId.length; ssAI++){
		$(ssResultArrayId[ssAI]).className = 'item';
	}	
	$(id).className = 'itemActive';
}

function ssActivateItemOver(obj){
	ssActivateItem(obj.readAttribute('id'));
}

function ssGoToItem(id){
	clearOnHref()
	document.location.href = $(id).down('a').readAttribute('href');
}

function ssGoToItemClick(obj){
	ssGoToItem(obj.readAttribute('id'));
}

function clearResultNavigation(){
	ssResultArrayId = [];
	ssResultArrayHref = [];
	ssResultArray = [];
	ssResultCursor = -1;
}

function clearOnHref(){
	superSearch.elements.textBox.blur();
	clearResultNavigation();
	setTimeout('superSearch.hideResults();',200);
}
	

function remSetValues()
{
	var eToWatch = $$('input.keepValue');
	eToWatch.each(function(obj) {
	    if (obj.type == 'password'){
	        changeInputType(obj, 'text', obj.title, false, true);
	    }
	    else{
	        Event.observe(obj, 'focus', function(event){
				    var element = event.element();
				    if(element.value==element.readAttribute('title'))
					    {element.value = ''};
			    });
		    Event.observe(obj, 'blur', function(event){
			    var element = event.element();
			    if(element.value=='')
				    {element.value = element.readAttribute('title')};
		    });	
		}
	});
}
Event.observe(window,'load',remSetValues);