function isUndefined(a){return typeof a=='undefined';}
function ltrim(s){return s.replace(/^\s*/,"");}
function rtrim(s){return ss.replace(/^\s*/,"");}
function trim(s){return s.replace(/^\s*/,"").replace(/^\s*/,"");}
function ucfirst(s){var f=s.charAt(0).toUpperCase();return f+s.substr(1);}
function strtolower(s){return s.toLowerCase();}
function strtoupper(s){return s.toUpperCase();}
function count(arr){return arr.length;}
function end(arr){return arr[count(arr)-1];}
function is_array(obj){return(obj.constructor.toString().indexOf("Array")==-1);}
function removeChecked(obj){l=obj.length;for(var i=0;i<l;i++){obj[i].checked=false;}}
function setChecked(obj,value){l=obj.length;for(var i=0;i<l;i++){if(obj[i].value==value){obj[i].checked=true;return true;}}return false;}
function isChecked(obj){var count=0;var l=obj.length;if(isUndefined(l)){return obj.checked ?1:0;} for(var i=0;i<l;i++){if(obj[i].checked){count++;}}return count;}
function setSelected(obj,value){l=obj.length;for(var i=0;i<l;i++){if(obj.options[i].value==value){obj.options[i].selected=true;return true;}}return false;}
function in_array(needle,haystack){for(var key in haystack){if(haystack[key]==needle){return true;}}return false;}
function empty(value){return(!value||trim(value)===''||trim(value)==='0');}
function urlencode(str){ if(str){ var SAFECHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()";var HEX="0123456789ABCDEF";var encoded="";for(var i=0;i<str.length;i++){var ch=str.charAt(i);if(ch==" "){encoded+="+";}else if(SAFECHARS.indexOf(ch)!=-1){encoded+=ch;}else{var charCode=ch.charCodeAt(0);if(charCode>255){alert("Unicode Character '"+ch+"' cannot be encoded using standard URL encoding.\n"+"(URL encoding only supports 8-bit characters.)\n"+"A space (+) will be substituted.");encoded+="+";}else{encoded+="%";encoded+=HEX.charAt((charCode>>4)&0xF);encoded+=HEX.charAt(charCode&0xF);}}}return encoded; } return "";}
function urldecode(encoded){var plaintext="";var i=0;while(i<(encoded.length-2)){var ch=encoded.charAt(i);if(ch=="+"){plaintext+=" ";i++;}else if(ch=="%"&&encoded.charAt(i+1)!="%"){plaintext+=unescape(encoded.substr(i,3));i+=3;}else{plaintext+=ch;i++;}}if(i<encoded.length){plaintext+=encoded.substr(i,encoded.length-i);}return unescape(plaintext);}
function winOpen(url,winname){return window.open(url,winname,'menubar,scrollbars,toolbar,resizable,dependent,status,width=800,height=600,left=200,top=0');}
function strReplace(s,r,w){return s?s.split(r).join(w):"";}
//function isFunction(a){return typeof a=='function';}
function isObject(a){return(a&&typeof a=='object')|| typeof a=='function';}
function isAlien(a){return isObject(a)&&typeof a.constructor!='function';}
function isArray(a){return isObject(a)&&a.constructor==Array;}
function isBoolean(a){return typeof a=='boolean';}
function isEmpty(o){if(isObject(o)){for(var i in o){var v=o[i];if(typeof v=='undefined'&&typeof v=='function'){return false;}}}return true;}
function objectSize(o){var size=0; if(isObject(o)){for(var key in o){if(o.hasOwnProperty(key)){size++;}}}return size;}
function isNull(a){return typeof a=='object'&&!a;}
function isNumber(a){return typeof a=='number'&&isFinite(a);}
function isString(a){return typeof a=='string';}
function objExists(id){return $('#'+id).length?true:false;}
function debug(val){if($('#debug').lenght){$('#debug').show();$('#debug').css('background','white');$('#debug').css('color','black');$('#debug').append(val+"<br>\n");}}
function toInt(x){return(x>0?Math.floor(x):Math.ceil(x));}
function changeBackgroundColor(obj,color){if(isObject(obj)){obj.style.backgroundColor=color;}}
function showLayer(id){if($('#'+id).length){$('#'+id).show();}}
function hideLayer(id){if($('#'+id).length){$('#'+id).hide();}}
function isVisible(id){return $('#'+id).length?$('#'+id).css('display'):false;}
function show(id){if(isVisible(id)){hideLayer(id);}else{showLayer(id);}}
function emailCheck(emailAddress){var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;return email.test(emailAddress);}
function getBackgroundColor(){backgroundColor=backgroundColor=="#EEEEEE"?"#FFFFFF":"#EEEEEE";return backgroundColor;}
function emptyLayer(id){if($('#'+id).length)$('#'+id).html('');}
function html2js(HTML){return strReplace(strReplace(strReplace(HTML,'<','\<'),'>','\>'),'/','\/');}
function putLink(PATH){return PROTO+SERVER_NAME+(!empty(PORT_NUMBER)?":"+PORT_NUMBER:"")+PATH;}
var defualtBackgroundColorArr=['#FFFFFF','#EEEEEE'];var colorIndex=0;function nextColor(colorArr){var numberOfColors=colorArr.length;if(colorIndex>=numberOfColors){colorIndex=0;}var selectedColor=colorArr[colorIndex];colorIndex++;return selectedColor;}
function setTableRowBackgroundColor(tableId,colorArr,skipIndex){skipIndex=isUndefined(skipIndex)?'':skipIndex;colorIndex=0;var tableObj=document.getElementById(tableId);if(isObject(tableObj)){var rowsObjArr=tableObj.getElementsByTagName("TR");for(var i=0;i<rowsObjArr.length;i++){if(i==skipIndex){continue;}changeBackgroundColor(rowsObjArr[i],nextColor(colorArr));}}}
function shiftClass(className,classArr){if(isUndefined(className)||isUndefined(classArr)){debug("function shift not complete list of arguments");return;}for(var key=0;key<classArr.length;key++){if(className==classArr[key]){return(key+1==classArr.length)?classArr[0]:classArr[key+1];}}}
function poupBlockerTest(){result=window.open("/blank.htm","popped","width=1,height=1,location=no,menubar=no,status=no,toolbar=no,scrollbars=no,resizable=no");if(!result){show('popupBlockerWarning');show('menuPlaceHolder');}else{result.close();}}
/*function JSFX_FloatTopLeft(id,xOffset,yOffset){var startX=isUndefined(xOffset)?0:xOffset;var startY=isUndefined(yOffset)?0:yOffset;var ns=(navigator.appName.indexOf("Netscape")!=-1);var d=document;var px=document.layers?"":"px";function ml(id){var el=d.getElementById(id);if(d.layers){el.style=el;}el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};el.x=startX;el.y=startY;return el;}window.doFloat=true;alert('test');window.stayTopLeft=function(){if(doFloat){var pY=ns?pageYOffset:document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;var dY=(pY>startY)?pY:startY;ftlObj.y+=(dY-ftlObj.y)/8;ftlObj.sP(ftlObj.x,ftlObj.y);}setTimeout("stayTopLeft()",20);};ftlObj=ml(id);stayTopLeft();}*/
function turnOnScreenAlert(flag){if(flag){$('#SCREEN_ALERT_GLOBAL').show();}else{$('#SCREEN_ALERT_GLOBAL').hide();}}
function goToLogin(){document.location.href='/logon.ms';}
function myOL(msg){overlib(msg);}
function winMove(winHeight,winWidth){var x=(screen.availWidth>winWidth)?((screen.availWidth-winWidth)/2):0;var y=(screen.availHeight>winHeight)?((screen.availHeight-winHeight)/2):0;window.moveTo(x,y);}
function getUrlParam(paramName){var urlquery=document.location.href.split("?");if(urlquery.length>1){var returnItems=urlquery[1].split("&");for(var key in returnItems){var tmpArr=returnItems[key].split("=");if(tmpArr[0]==paramName){return tmpArr[1];}}}return"";}
function checkPassword(strng){var error="";if(empty(strng)){error="Password is missing.\n";}var illegalChars=/[\W_]/;if((strng.length<6)){error="The password has to be at least 6 characters long\n";}else if(illegalChars.test(strng)){error="The password may only contain numbers and letters.\n";}if(!empty(error)){alert(error);return false;}return true;}
function setFocus(obj){obj.focus();obj.style.backgroundColor="#FFF47F";}
function setBlur(obj){obj.style.backgroundColor="#eeeeee";}
function formatCurrency(num){num=num.toString().replace(/\$|\,/g,'');if(isNaN(num)){num="0";}sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);cents=num%100;num=Math.floor(num/100).toString();if(cents<10){cents="0"+cents;}for(var i=0;i<Math.floor((num.length-(1+i))/3);i++){num=num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));}return(((sign)?'':'-')+'DKK&nbsp;'+num);}
function formatNumber(num){num=num.toString().replace(/\$|\,/g,'');if(isNaN(num)){num="0";}sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);cents=num%100;num=Math.floor(num/100).toString();if(cents<10){cents="0"+cents;}for(var i=0;i<Math.floor((num.length-(1+i))/3);i++){num=num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));}return(((sign)?'':'-')+num+","+cents);}
function _date(){var d=new Date();return d.getFullYear()+"."+(d.getMonth()+1)+"."+d.getDate();}
function _time(){var d=new Date();return d.getHours()+":"+(d.getMinutes()+1)+":"+d.getSeconds();}
function unhtml(s){return s ? unescape(s).replace(/<(.)*?>/g,'').replace(/&lt;(.)*?&gt;/g,''):'';}
function cloneObject(obj){for (var i in obj) this[i]=(typeof obj[i]=='object')?new cloneObject(obj[i]):obj[i];}
function textCutter( s, strLen ){
  s = strReplace( s , "\n" , ". " );s = strReplace( s , "\t" , ". " );s = strReplace( s , "  " , " " ); s = strReplace( s , "&amp;" , "&" );
  var tmpArr = s.split(' ');
  var tmpStr = "";
  for( var key in tmpArr ){
    if( tmpStr.length > strLen && key <= tmpArr.length ){
      tmpStr = trim( tmpStr ) + '...';
      break;
    }else if( tmpArr[key].length + tmpStr.length + 1 <= strLen ){
      tmpStr += tmpArr[key] + ' ';
    }else{
      tmpStr += '...';
      break;
    }
  }
  return tmpStr;
}

function strCleanup(str){ return str.replace(/@{/g,'{').replace( /(\d{2}\.\d{2}\.\d{4})/g , "'$1'" ).replace(/null/g,'0').replace(/A\s}/g,"}");}

function dump(arr,level) {
  $('#debug').show();
  $('#debug').css({background:'#ffffff',zIndex:'99999'});
  var dumped_text = "";
  if(!level) level = 0;

  //The padding given at the beginning of the line.
  var level_padding = "";
  for(var j=0;j<level+1;j++) level_padding += "    ";

  if(typeof(arr) == 'object') { //Array/Hashes/Objects
    for(var item in arr) {
      var value = arr[item];

      if(typeof(value) == 'object') { //If it is an array,
        $('#debug').append( level_padding + "'" + item + "' ...<br>" );
        $('#debug').append( dump(value,level+1) );
      } else {
        $('#debug').append( level_padding + "'" + item + "' => \"" + value + "\"<br>" );
      }
    }
  } else { //Strings/Chars/Numbers etc.
    $('#debug').append( "===>"+arr+"<===("+typeof(arr)+")<br>" );
  }
}

/* last Step starts */

function goBasket(){document.location.href = "/shop/trolley.ms"}
function goStep1(){document.location.href = "/laststep/step1.ms"}
function goStep2(){document.location.href = "/laststep/step2.ms"}

function goStepRoyalClub(){
  // this variable is set in freight.js
  if( freightOptionIsChosen ){
    document.location.href = "/laststep/stepRoyalClub.ms";
    return true;
  }
  alert( "Dear Customer,\nPlease choose a delivery method.\nThank you." );
  return false;
}

function goStep3( ignoreCtrl ){
  if( isUndefined( ignoreCtrl ) || ignoreCtrl == false ){
    // this variable is set in freight.js
    if( freightOptionIsChosen ){
      document.location.href = "/laststep/step3.ms";
      return true;
    }
    alert( "Dear Customer,\nPlease choose a delivery method.\nThank you." );
  }else if( ignoreCtrl == true ){
    document.location.href = "/laststep/step3.ms";
  }
}

function continueShopping(){document.location.href = "/index.ms"}

function countChars(obj,e){
  $('#XYZ').html(obj.value.length);

  if( e.keyCode == 8 || e.keyCode == 46 ) return true;

  if(obj.value.length>=100){
    return false;
    obj.style.backgroundColor = "red";
  }else{
    obj.style.backgroundColor="white";
  }
}

function rcRedeemFormControl(redeemFormObj){
  if( parseInt(redeemFormObj.numberOfPoints.value) <= redeemFormObj.maxnumberofpoints.value ){
    redeemFormObj.numberOfPoints.value = parseInt( redeemFormObj.numberOfPoints.value );
    return true;
  }
  alert( "Dear Customer\n\nYou are redeeming more points than needed. The maximum number of points which you can redeem is " + redeemFormObj.maxnumberofpoints.value );
  redeemFormObj.numberOfPoints.focus();
  return false;
}

function init(){
  theForm = document.form1;
}

function approve( paytype ){

  var creditCardTypes = ['AMEX','DK','DIN','JCB','MC','VISA','ELEC'];

  var obj = document.paymentSelectionForm;

  var found = false;

  if( obj.customerRemarks.value.length > 100 ){
    alert("Please shorten your remarks. Thank you.");
    obj.customerRemarks.focus();
    return false;
  }

  if( isUndefined(paytype) || empty(paytype) ){
    $('.cards .grid_4').css({background:'#69737D'}).addClass('corner');
    alert('Dear Customer, A payment method is needed to be selected before you proceed with approving your order.');
    $('.cards .grid_4').css({background:'white'}).addClass('corner');
    return false;
  }

  if( jQuery.inArray( paytype , creditCardTypes ) != -1 ){
    //var currencyTable = { DKK:208, EUR:978, USD:840, GBP:826, SEK:752, AUD:"036", CAD:124, ISK:352, JPY:392, NZD:554, NOK:578, CHF:756, TRL:792 };
    if( confirm("Dear Customer.\nYou have choosen credit card as the payment method.\nYou will now be redirected to our secure payment gateway (https://payment.architrade.com/).\nAfter the payment is done you will be redirected back to http://www.pj.dk\nDo you wish to continue to approve your order?") ){
      clickTrackingObj.report("CreditCard");
      document.DIBS.customerRemarks.value = obj.customerRemarks.value;
      document.DIBS.paytype.value = paytype;
      document.DIBS.submit();
      //obj.approveButton.disabled=true;
      //obj.approveButton.value='Please wait...';
      return true;
    }
    found = true;
  }

  if( obj.customerRemarks.value.length > 100 ){
    alert("Please shorten your remarks. Thank you.");
    obj.customerRemarks.focus();
    return false;
  }

  if( ( paytype == 'Bank/Cash/Giro' || paytype == 'Western Union' ) ){
    if( confirm( 'You have choosen "' + paytype + '". Do you wish to continue to approve your order?' ) ){
      clickTrackingObj.report("BankCashGiroWU");
      document.location.href = "/order/approvebasket.ms?remarksVar=" + urlencode( obj.customerRemarks.value ) + "&orderNumber=" + sessionObj.orderNumber + "&paymentMethod=" + urlencode( paytype );
      //obj.approveButton.disabled=true;
      //obj.approveButton.value='Please wait...';
      return true;
    }
    found = true;
  }

  if( !found ){
    alert("Dear customer, a technical problems is disturbing the checkout process.\nThe Web shop administrator has been informed about this error.\nPlease try again in couple of hours. The order's content is safe and won't be removed. Otherwise it's recommended that you upgrade your internet browser, or inform us about the version of internet browser you are using.");
    errorReportingObj.report( "Approve failed: paymenttype=" + paytype + " - Customernumber=" + sessionObj.debitorNo + " - browserversion=" + $.browser.version + " -  customeremail=" + sessionObj.emailAddress );
  }

  return false;
}

function getDestinations(){
  $.ajax({
    url:"delivery_dest.ms",
    data:"country=" + $('#countrySelect').val() + "&destination=" + sessionObj.destinationNumber,
    success:function(msg){
      eval(strCleanup(msg));
      var HTML = "<SELECT style='width:200px;' NAME=destination class=noBorder onFocus='setFocus(this)' onBlur='setBlur(this)'>";
      for(var key in resultObj) HTML += "<option value='" + resultObj[key].destinationnumber.value + "'" + ( sessionObj.destinationNumber == resultObj[key].destinationnumber.value ? " SELECTED" : "" ) + ">" + resultObj[key].name1.value;
      HTML += "</SELECT>";
      $("#destinationHolder").html(HTML);
    }
  });
}

/* last Step ends */


/* basket starts */

function order(){

  var itemNumber=parseInt( document.shoppingBasketForm.itemnumber.value );

  if( String( itemNumber ) != document.shoppingBasketForm.itemnumber.value ){
    alert("The Item No. shall be a number. Please try again");
    document.shoppingBasketForm.itemnumber.value = "";
    document.shoppingBasketForm.itemnumber.focus();
    return false;
  }

  if( document.shoppingBasketForm.quantity.value > 0 && document.shoppingBasketForm.itemnumber.value.length > 3 ){
    document.shoppingBasketForm.submit();
  } else {
    alert('Item number must be at least 4 digits \nand quantity must be larger than 0');
    if(document.shoppingBasketForm.itemnumber.value>'0')
      document.shoppingBasketForm.quantity.focus();
    else if(document.shoppingBasketForm.quantity.value>'0')
      document.shoppingBasketForm.itemnumber.focus();
  }
}

function laststep(){
  if( !isGuest ){
    $("#loading").show();
    $.ajax({
      type: "GET",
      url: "/order/ac.ms",
      data: "ordernumber=" + sessionObj.orderNumber,
      success: function(msg){
        $("#loading").hide();
        eval( strCleanup(msg) );
        var found = false;
        var rows = resultObj.result.rows;
        resultObj = 0;
        for(var k in rows ){
          if( rows[k].stock.value < rows[k].numberordered.value && rows[k].blocked.value ){
            found = true;
            $('.'+rows[k].itemnumber.value).css({background:'#FFF15F'});
          }else{
            $('.'+rows[k].itemnumber.value).css({background:'#A0FF9F'});
          }
        }

        if( !found ) document.location.href= "/laststep/step1.ms";
        else{
          if( confirm('Dear Customer, The items marked with yellow color are not available on stock in the numbers your have ordered.\n\nPlease click OK if you wish to adjust the number ordered automatically.') ){
            alert("something shall be done in trolley.js");
          }
        }
      }
    });

  } else {
    alert('You will be redirected to the login page. Please click OK. Thank you.');
    document.location.href = '/logon.ms?nextDestination=' + urlencode( '/laststep/step1.ms' );
  }
}

function deleteItem( index ){
  document.location.href = MS_SELF + "?actionid=delete&TheIndexVar=" + index;
}

function borderOn(obj){
  obj.style.borderTop = "1px solid #00FF00";
  obj.style.borderLeft = "1px solid #00FF00";
  obj.style.borderRight = "2px solid #00FF00";
  obj.style.borderBottom = "2px solid #00FF00";
}

function borderOff(obj){
  obj.style.borderTop = "1px solid #ffffff";
  obj.style.borderLeft = "1px solid #ffffff";
  obj.style.borderRight = "2px solid #ffffff";
  obj.style.borderBottom = "2px solid #ffffff";
}

function emptyBasket(){
  document.location.href = MS_SELF + "?actionid=deleteBasket";
}

function basketInfo(){
  $.ajax({
    url:'/shop/basketInfo.ms',
    data:'',
    success:function(msg){
      eval(strCleanup(msg));
      sessionObj.subtotal = resultObj.subtotal.value;
      sessionObj.numberOfItems = resultObj.numberOfItems.value;
      layout.setShoppingBasketData( resultObj.subtotal.value, resultObj.numberOfItems.value);
    }
  });
}

function basketCtrl( formObj ){
  if( parseInt( formObj.quantity.value ) == 0 ){
    alert( "Dear Customer\nPlease specify a quantity larger than 0.\nThank you." );
    formObj.quantity.value = 1;
    setFocus( formObj.quantity );
    return false;
  }
  formObj.addVar.value=true;
  formObj.deleteVar.value=false;
  return true;
}

function addToBasket(itemnumber,id){

  if(isUndefined(id)){
    var qty=1;
  }else{
    var qty=$('#'+id).attr('value');
    if(empty(qty))qty=1;
  }

  $.ajax({
    type:"GET",
    url:'/shop/addToBasket.ms',
    data:'itemnumber='+itemnumber+'&quantity='+qty,
    success:function(msg){
      eval(strCleanup(msg));
      if( resultObj.itemAdded.value ){
        if( document.location.href.indexOf('trolley.ms') != -1 )
          document.location.reload();
        else{
          basketContent();
          basketInfo();
          royal_club_calc();
        }

      }else{
        if( resultObj.basketError.value[0].indexOf('{') != -1 ){
          var errorMsg = resultObj.basketError.value.join("\n\n").split('{');
          var aux = errorMsg[1].split('}');
          if( confirm( "The item could not be added to your basket.\n\nReason:\n" + errorMsg[0] + "\n" + aux[1] ) ){
            document.location.href = aux[0].replace('link:','');
          }
        }else{
          alert("The item could not be added to your basket.\n\nReason:\n" + resultObj.basketError.value.join("\n\n") );
        }
      }
    }
  });
}

function deleteFromBasket(index){
  $.ajax({
    type:"GET",
    url:'/shop/deleteFromBasket.ms',
    data:'index='+index,
    success:function(msg){
      eval(strCleanup(msg));
      basketContent();
      basketInfo();
      royal_club_calc();
    }
  });
}

function goSubst( subsItemNumber , remarks , LINE ){
  if( confirm( "Item has been substituted by: " + subsItemNumber + ".\n\nReason:\n" + remarks + ".\n\nDo you wish to view this item instead? (L:" + LINE + ")" ) ){
    document.location.href = "/shop/search.ms?q=" + subsItemNumber;
  }
}

function changeQunatity( index,id,number ){

  number = parseInt($("#"+id).text()) + number;

  $.ajax({
    type: "GET",
    url: "/shop/changeQuantity.ms",
    data: "index=" + index + "&requestedQuantity=" + number,
    success: function(msg){
      eval( strCleanup(msg) );
      if( resultObj.error.value ){
        alert("Dear Customer,\n\nThe quantity could not be changed due to following reason:\n" + resultObj.message.value);
      }else{
        if( resultObj.numberordered.value == 0 && window.location.href.indexOf('trolley.ms') != -1 ){
          window.location.reload();
          return;
        }else if(resultObj.numberordered.value == 0){
          $("#quickBasket").toggle();
        }else{
          $("#"+id).text(resultObj.numberordered.value);
          $("#AMOUNT"+index).text(resultObj.linepricecurrency.value.toFixed(2) + " " + sessionObj.currencyName);
          $("#GRAND").html(resultObj.totalcurrency.value.toFixed(2) + " " + sessionObj.currencyName);
        }
        basketInfo();
        royal_club_calc();
      }
    }
  });
}

var timerActive = false;
var qsCloseTime = 5;
function initBasket(){
  if( $('#quickBasket').length ){
    $('#quickBasket').css({zIndex:'10000',top:( $(window).scrollTop()>layout.navigationHeight ? $(window).scrollTop()+"px" : layout.navigationHeight+"px" ),textAlign:'center'});
    $('.increase').corner("right");
    $('.decrease').corner("left");
    $('.basket_header').css({fontWeight:'bold',background:'#80AABF',paddingTop:'10px',paddingBottom:'10px'});
    $('.grid_9').css({fontSize:'10pt'});
    $('.basket_item').css({background:'#ffffff',width:'730px'});
    $('.basket_item_qua').css({lineHeight:'68px',height:'68px',paddingTop:'34px',paddingLeft:'34px'});
    $('.basket_item_des').css({lineHeight:'90px',height:'90px'});
    $('.basket_item_pri').css({lineHeight:'90px',height:'90px'});
    $('.basket_item_img > img').css({verticalAlign:'middle',paddingTop:'13px'});
    $('.basket_item_del').css({textAlign:'center'});
    $('.basket_top').css({fontSize:'8pt',width:'730px',background:'#99CCE6',paddingTop:'15px',paddingBottom:'5px'}).corner('top');
    $('.basket_top_text').css({fontSize:'10pt',float:'left',textAlign:'left'});
    $('.basket_bottom').css({fontSize:'8pt',width:'730px',background:'#99CCE6',paddingTop:'5px',paddingBottom:'15px'}).corner('bottom');
    $('#gotBasketLink').css({color:'navy',marginRight:'5px',cursor:'pointer',float:'left',textAlign:'center'}).bind({click:function(){document.location.href='/shop/trolley.ms'}});
    $('#continueShopping').css({color:'navy',marginLeft:'5px',cursor:'pointer',textAlign:'center'}).bind({click:function(){$('#quickBasket').toggle(500)}});
    $('.closeMyBasket').css({float:'right',cursor:'pointer',marginRight:'5px',color:'navy',textAlign:'right'}).bind({click:function(){$('#quickBasket').toggle(500)}}).text('Close');

    // Close Timer

    $('#quickBasket').everyTime( 1000, 'qbCloseTimer', function(){
      qsCloseTime--;
      if(qsCloseTime===0){$("#quickBasket").hide(500); $(this).stopTime('qbCloseTimer');qsCloseTime=5;}
    }, 6 );
  }
}

function basketContent(){
  $.ajax({
    url:'/shop/basketContent.ms',
    data:'',
    success:function(msg){
      eval(strCleanup(msg));
      var HTML = "";
      HTML +="\
<div class='container_9'>\
<div class='grid_9 alpha omega basket_top'><div class='grid_4 basket_top_text'>This item has been added to your basket</div><div class='grid_1 closeMyBasket'></div></div>";

      for(var key in resultObj){
      var id = "QB" + key + resultObj[key].itemnumber.value;

      HTML +="\
<div class='grid_9 alpha omega basket_item'>\
  <div class='grid_1 basket_item_img'><img src='/img/65x65/" +searchObj.imgSubDir(resultObj[key].imagebanknr.value) + resultObj[key].imagebanknr.value + ".jpg' border=0></div>\
  <div class='grid_4 basket_item_des'>" + resultObj[key].itemtext1.value + "</div>\
  <div id=AMOUNT" + key + " class='grid_2 alpha omega basket_item_pri'>" + resultObj[key].linepricecurrency.value.toFixed(2) + "&nbsp;" + sessionObj.currencyName + "</div>\
  <div class='grid_2 omega basket_item_qua'>\
   <div class=decrease onclick='changeQunatity(" + resultObj[key].index.value + ",\"" + id + "\",-1)' title='Reduce one item'>-</div>\
   <div id=" + id + " class=quantity>" + resultObj[key].numberordered.value + "</div>\
   <div class=increase onclick='changeQunatity(" + resultObj[key].index.value + ",\"" + id + "\",1)' title='Add one item'>+</div>\
  </div>\
</div>";
      }
      HTML += "<div class='grid_9 alpha omega basket_bottom'><div class='prefix_2 grid_2' id=continueShopping>Continue shopping</div><div class='prefix_1 grid_2' id=gotBasketLink>Go to basket</div></div>"
      HTML += "</div>";// end of container_9

      $("#quickBasket").html(HTML).show(500);
      initBasket();
    }
  });
}

/* basket ends */

/* shopObj starts */

var shopObj = {
  init : function(){
    if( sessionObj.loggedOn ) return;
    this.loggedOn  = getCookie('cookiesVar_loggedOn');
    this.loggedOut = getCookie('cookiesVar_loggedOut');
    this.debitorNo = getCookie('cookiesVar_debitorNo');
    this.SomeThing = getCookie('cookiesVar_SomeThing');
    if( this.debitorNo && ( this.now - this.loggedOut > 300000 ) ){
      document.location.href = "/logon.ms";
      return;
    }

    if( !isUndefined( document.login ) && isGuest ){
      if( this.debitorNo ){
        document.login.deb.value = this.debitorNo;
        document.login.rememberMe.checked = true;
      }
      if( this.SomeThing ){
        document.login.passwd.value = this.SomeThing;
        document.login.rememberMe.checked = true;
      }
      this.today = new Date();
      this.now = this.today.setTime( this.today.getTime() );
      if( this.debitorNo && this.SomeThing ){
        document.login.remembered.value = 1;
        if( !autoLogonDisabled && this.now - this.loggedOut > 300000 ) document.login.submit();
      }
    }
  },
  rememberMeCheck : function(obj){
    if( !obj.checked && confirm('Dear customer\n If you uncheck this box the automatic sign in will be disabled. Do you wish to coninue?') ){
      obj.checked=false;
      deleteCookie( 'cookiesVar_debitorNo', '/' , SERVER_NAME );
      deleteCookie( 'cookiesVar_SomeThing', '/' , SERVER_NAME );
      layout.hideRememberMe();
      return;
    }else{
      obj.checked=true;
    }
  },
  rememberMe : function(){
    this.debitorNo = getCookie( 'cookiesVar_debitorNo' );
    if( this.debitorNo ){
      document.out.rememberMe.checked=true;
    }else if($('#rememberMeHolder').length){
      layout.hideRememberMe();
      document.out.rememberMe.disabled=true;
    }
  },
  submitLogoutForm : function(obj){
    document.location.href= "/Debitor/log_out.ms" + ( document.out.rememberMe.checked ? "?rememberMe=1" : "" );
  },
  submitLoginForm : function(event,obj){
    if( event && event.keyCode == 13 && !empty( obj.form.passwd.value ) ){
      obj.form.submit();
      return false;
    }else if( empty( obj.form.passwd.value ) ){
      setFocus(obj);
      return true;
    }
  },
  backToFrontPage : function(){
    document.location.href = "/index.ms";
  },
  customerGuide : function( alternativeLocation ){
    document.location.href = putLink( alternativeLocation );
  },
  setBackgroundImage : function(){
    $('#NAVIGATION_DIV').css({backgroundImage:"url('/graphics/fp/star.jpg')"});
    $('#menuPlaceHolder').css({backgroundImage:"url('/graphics/fp/star.jpg')"});
    $(document.body).css({backgroundImage:"url('/graphics/fp/star.jpg')"});
  },
  QuickShoppingSubmit:function(e){
    if(!isUndefined(e.keyCode) && isObject(e)){
      var key = e.keyCode;
      if(key==13){
        $("#QuickShoppingItemNumber").attr('value', parseInt($("#QuickShoppingItemNumber").attr('value')) );

        if( $("#QuickShoppingItemNumber").attr('value') == "NaN" ){
          $("#QuickShoppingItemNumber").attr('value','');
          return;
        }
        addToBasket($("#QuickShoppingItemNumber").attr('value'),"QuickShoppingQuantity");
        $("#QuickShoppingItemNumber").focus();
        $("#QuickShoppingItemNumber").attr('value','');
        $("#QuickShoppingQuantity").attr('value',1);
        clickTrackingObj.report("QuickShopping");
      }
      return;
    }
  },
  controlLocation:function(){
    if( document.location.href.indexOf("trolley.ms") == -1 ) document.location.href = "/shop/trolley.ms";
  }

}//end of Object

/* Shop object ends */

/* Search Begins */

/*
GROUP1=0
TEXT=1
ITEMNO=2
GROUP2=3
PRICE=4
IMAGEBANKNR=5
PRODUCTION=6
BODY=7
UNDERSECTION=8
SUPEROFFER=9
WSC=10
PDF=11
UNIT=12
REDUCED_PRICE=13
*/
//very bad hack
//under section text

//Search result Object

function search(objectName){

  this.GROUP2={};
  this.srArr = [];
  this.bufferArr = [];
  this.HTML = "";
  this.superOfferArr = [];
  this.tvCountryCodesStr="";
  this.discount={PRODUCTIONCODE:"",DISCOUNTRATE:"",MINIMUMAMOUNT:"",CURRENCYCODE:"",STARTINGDATE:"",ENDINGDATE:"",PRODUCTIONNAME:"",CURRENCYNAME:""};
  this.unitNameObj={PCS:"Single",CTNS:"Box",BOX:"Case",SET:"Set",PACK:"Package",PLL:"Palette"};
  this.underSectionText="";
  this.showArr = [];
  this.lastVisibleItem=0;
  this.objectName = objectName;

  this.init = function(){
    var category = getUrlParam('Category');
    var q = getUrlParam('q');
    if( !category && !q ) return false;

    $("#pageContent").html("<div id='ITEM_VIEWER'></div><div id='SEARCH_RESULT_DIV' class='MAXIM_DIV'></div>");

    $.ajax({
      type:"GET",
      url:'/php/json.php',
      data:[
        'Category='+category,
        'q='+q,
        '&currencyName='+sessionObj.currencyName
      ].join('&'),
      dataType:'json',
      success:function(retArr){
        searchObj.srArr = retArr;
        searchObj.performOperations();
      }
    });

    $('#antTrack').css({float:'left'});
  }

  this.performOperations=function(){
    document.searchForm.q.value=urldecode(getUrlParam('q'));
    document.searchForm.q.focus();
    this.setItems();
    layout.showSubgroups();
    this.setSections();
    this.highlightSubgroup(document.getElementById('ITEM_SUBGROUP_0'));
    if(this.srArr.length==1) this.readMore(0,true);
    if(!empty(getUrlParam('cn'))) this.highlightIndex(urldecode(getUrlParam('cn')));
    this.shuffleSuperOffer();
    if(this.superOfferArr.length){
      this.populateSuperOffer();
      superOffer.init(this.superOfferArr.length>4?4:this.superOfferArr.length);
    }else{
      layout.hideSuperOffer();
    }
    layout.showAntTrack();
    this.setItemCategory();
    if(!this.srArr.length) this.searchResultEmpty();
    this.showSomeMoreItems(8);
  }

  this.unhtml = function( s ){return s ? unescape(s).replace(/<(.)*?>/g,'').replace(/&lt;(.)*?&gt;/g,'') : "";}

  this.setItems = function setItems(){

    var len = this.srArr.length;

    for(var key = 0; key < len; key++){
      this.showArr.push(key);
      this.srArr[key][3]=this.unhtml(this.srArr[key][3]);
      var group2=this.srArr[key][3];
      if(typeof this.GROUP2[group2] === 'undefined') this.GROUP2[group2]=[];
      if(this.srArr[key][10]=='1') this.superOfferArr.push(key);
      this.srArr[key][8]=this.unhtml(this.srArr[key][8]);
      this.GROUP2[group2][this.srArr[key][8]]=null;
    }

    this.tvCountryCodesStr=0;
  }

  this.searchResultEmpty = function(){
    var HTML = "\
    <div>Try browsing through our categories on the left of the page or try searching again.</div>\
    <div>Suggestions:</div>\
    <ul>\
    <li>Make sure all words are spelled correctly;</li>\
    <li>Try different keywords;</li>\
    <li>Try more general keywords.</li>\
    <li>You can search by keyword, product, brand name or the product code if you know it.</li>\
    </ul>";
     $("#pageContent").append( "<div style='font-size:10pt;margin-bottom:2px;margin-left:15px;line-height:20px;'>"+HTML+"</div>" );
  }

  this.shuffleSuperOffer=function(){
    var i= this.superOfferArr.length;
    if(!i){
      return;
    }
    while(--i){
      var j=Math.floor(Math.random()*(i+1));
      var tempi=this.superOfferArr[i];
      var tempj=this.superOfferArr[j];
      this.superOfferArr[i]=tempj;
      this.superOfferArr[j]=tempi;
    }
  }

  this.populateSuperOffer=function(){
    if(this.superOfferArr.length){
      var len=this.superOfferArr.length>4?4:this.superOfferArr.length;
      var SUPEROFFER="<div class=superOffer>";
      for(var i=0;i<len;i++){
      SUPEROFFER+="\
      <div onMouseOver='superOffer.pauseIt();' onMouseOut='superOffer.unpauseIt("+i+");' id='superOffer_"+i+"' class=superOfferItem>\
        <div class=superOfferImage style='background-image:url(/img/182X182/"+this.imgSubDir( this.srArr[this.superOfferArr[i]][5] )+this.srArr[this.superOfferArr[i]][5]+".jpg);'>&nbsp;</div>\
        <div class=superOfferItemInfo>\
          <div class='superOfferItemLabel ITEM_CTR_IMAGE'><div>Super Offer</div></div>\
          <div class=superOfferItemNumber>"+this.srArr[this.superOfferArr[i]][2]+"</div>\
          <div class=superOfferItemName>"+this.remTvCountryCode(this.srArr[this.superOfferArr[i]][1],true)+"</div>\
          <div class=superOfferItemBody>"+this.readMoreWrapper(this.srArr[this.superOfferArr[i]][7],100,this.superOfferArr[i])+"</div>\
          <div class=superOfferPrice><span class=superOfferCurrency>"+sessionObj.currencyName+"</span><span class=superOfferAmount>"+this.srArr[this.superOfferArr[i]][4]+"</span></div><div class=ITEM_PLUS onClick='addToBasket("+this.srArr[this.superOfferArr[i]][2]+");'>Add to Basket &#187;</div>\
        </div>\
      </div>";
      //superOfferAddToBasket
      }
      SUPEROFFER+="<div id=superOfferItemMarkerHolder>";
      for(var i=0;i<len;i++){
      SUPEROFFER+="<div id='superOfferItemMarker_"+i+"' style='cursor:pointer;' onMouseOver='superOffer.pauseIt();superOffer.bringToFront("+i+");' onMouseOut='superOffer.unpauseIt("+i+");' class=superOfferItemMarker onClick='searchObj.readMore("+this.superOfferArr[i]+",true);'>"+(i+1)+"</div>";
      }
      SUPEROFFER+="</div></div>";
      $("#superOffer").html(SUPEROFFER);
    }
  }

  this.itemInternalSearc=function(text){
    toggleMaxims(empty(text)?"block":"none");
    var LEN=this.srArr.length;
    if(empty(text)){for(var key=0;key<LEN;key++){this.showItem(key);}return;}
    var textArr=this.cleanText(text).split(' ');
    this.found;
    this.allTrue=function(){
      for(var key in this.found){ if(!found[key])return false; }
      return true;
    }
    for(var key=0;key<LEN;key++){
      this.found=[];
      for(var i in textArr){
        this.found[i]=this.srArr[key][0].toUpperCase().indexOf(textArr[i])!=-1||this.srArr[key][3].toUpperCase().indexOf(textArr[i])!=-1||this.srArr[key][7].toUpperCase().indexOf(textArr[i])!=-1||this.srArr[key][8].toUpperCase().indexOf(textArr[i])!=-1||this.srArr[key][1].toUpperCase().indexOf(textArr[i])!=-1;
      }
      this.allTrue()?$('#ITEM_'+key).show():$('#ITEM_'+key).hide();
    }
  }//--

  this.showItem = function(key){
    var ITEM = this.srArr[key];

    $('#SEARCH_RESULT_DIV').append(this.templator(key,"small_template"));

    $('#ITEM_'+key).show(250).children('.ITEM_THUMBNAIL').html( function(){
      if( ITEM[5] != 'undefined' ){
        return "<img src='http://www.pj.dk/img/142X142/"+searchObj.imgSubDir(ITEM[5])+ITEM[5]+".jpg' title='Read more' border=0 onerror='imageLoadError(\""+ITEM[0]+"\",\""+ITEM[3].replace('&#34;','')+"\",\""+ITEM[2].replace('"','')+"\",\""+ITEM[5]+"\",this.src,142)'>";
      }else{
        imageLoadError(ITEM[0],ITEM[3],ITEM[2],ITEM[5]," No Image Bank Number");
        return "<img src='/img/142X142/missingImage.jpg' height=142 width=142 border=0>";
      }
    }).css({textAlign:'center'});
  }

  this.cleanText = function(text){
    text=text.toUpperCase();
    var tmpText='';
    if( text.indexOf('/') != -1 ){
      var len = text.length;
      for(var i=0;i<len;i++){ tmpText += text.charCodeAt(i)==8260 ? '&FRASL;': text.charAt(i); }
      return tmpText;
    }
    return text
  }//--

  this.readMoreWrapper=function(str,strLen,key){
    str= str ? str.split("  ").join(" ").split("&amp;apos").join('&amp;#39;') : "";
    if( str.length <= strLen ){
      return trim(str)+'... <span class=READMORE onClick="searchObj.readMore('+key+',true);">read more</span>';
    }
    var tmpStr="";
    for(var i=0; i<strLen;i++) tmpStr+=str.charAt(i);
    return trim(tmpStr)+'... <span class=READMORE onClick="searchObj.readMore('+key+',true);">read more</span>';
  }//--

  this.readMore=function(key,flag){
    $('#GUIDE').hide();
    var len = this.srArr.length;
    if(key>-1&&key<len){
      this.show_item_viewer(this.templator(key,'large_template'),this.srArr[key][2]);
      return;
    }
    overlib('End of the list is reached');
  }//--

  this.getItemProperties=function(itemnumber){
    $.ajax({
      type:"GET",
      url:"/shop/getItemProperties.ms",
      data:"itemnumber="+itemnumber,
      success:function(msg){
        eval(msg);
        if(objArr.length>0){
          var props="<div id='ITEM_PROPERTIES_TITLE'>Properties</div>";
          $("#ITEM_TV_COMPAT_CODES").toggle();
          var len = objArr.length;
          for(var key=0;key<len;key++){
            props+="<div class='propertyname'>"+objArr[key].propertyname.value+"</div>";
            props+="<div class='propertyvalue'>"+(!empty(objArr[key].remark1.value)?objArr[key].remark1.value:"&nbsp;")+"</div>";
          }
          $('#ITEM_PROPERTIES').html(props).show();
        }
      }
    });
  }//--

  this.imgSubDir=function(s){return s ? ($.browser.msie?s.substr(s.length-3):s.substr(-3))+"/" : "";}

  this.readLess=function(){$('#ITEM_VIEWER').hide();}//--

  this.maintainTopPosition=function(){$('#ITEM_VIEWER').css({top:( $(window).scrollTop() > layout.navigationHeight ? $(window).scrollTop() : layout.navigationHeight )+'px'});}//--

  this.antTrackThis=function(ITEM){return ITEM[0]+" :&nbsp;&nbsp;"+ITEM[3];}//--

  this.toggleMaxims = function(display){$('#MAXIM_0').css('display',display);}//--

  this.getPDFlink=function (PDF,ITEMNO){return empty(PDF)?'':"<br><a style='font-size:7pt;' href='/items_description_pdf/"+ITEMNO+".pdf'><img src='/graphics/info/gd.gif' border=0>Please Click for more information</a>";}//--

  this.templator=function (key,templateName){
    var ITEM = this.srArr[key];
    if(ITEM=='undefined') return "";
    eval('var template = '+this.objectName+'.'+templateName+';');
    return template
      .replace(/\[OBJECTNAME\]/g,this.objectName)
      .replace(/\[ITEMNO\]/g,ITEM[2])
      .replace(/\[KEY\]/g,key)
      .replace('[PRICE]',ITEM[4])
      .replace('[CURRENCYNAME]',sessionObj.currencyName)
      .replace('[UNDERSECTION]',ITEM[8])
      .replace('[BODY]',(templateName=='small_template'?this.readMoreWrapper(this.unhtml(ITEM[7]),45,key):this.unhtml(ITEM[7])))
      .replace('[ctrDiv]',this.ctrDiv(ITEM)).replace('[TEXT]',this.remTvCountryCode(RRE(ITEM[1]),true))
      .replace(/\[NEXTKEY\]/g,key+1)
      .replace(/\[PREVIOUSKEY\]/g,key-1)
      .replace(/\[ANTTRACK\]/g,this.antTrackThis(ITEM))
      .replace(/\[IMAGEBANKNR\]/g,ITEM[5])
      .replace('[UNIT]',this.unitNameObj[ITEM[12]])
      .replace('[PDF]',this.getPDFlink(ITEM[11],ITEM[2]))
      .replace('[IMGSUBDIR]',this.imgSubDir(ITEM[5]))
      .replace('[GROUP1]',ITEM[0])
      .replace('[GROUP2]',ITEM[3]?ITEM[3].replace('&#34;',''):'');
  }

  this.qs_template = "\
<div class=qsitem>\
<a class=qslink href='#' onclick='[OBJECTNAME].readMore([KEY],true);'>\
<img src='/img/65X65/[IMGSUBDIR][IMAGEBANKNR].jpg' onerror='imageLoadError(\"[GROUP1]\",\"[GROUP2]\",\"[ITEMNO]\",\"[IMAGEBANKNR]\",this.src,65);' border=0 title='Read more'></a>\
<div class='qslink qstitle' onclick='[OBJECTNAME].readMore([KEY],true);'>[TEXT]</div>\
<div class=qsprice>[PRICE]&nbsp;[CURRENCYNAME]</div>\
<div class=qsadd><div class=qsquantity><input class='noBorder INO' onFocus='setFocus(this);this.value=\"\";' onBlur='setBlur(this)' type=text id=QS[ITEMNO] name=QS[ITEMNO] value=1></div><div class='ITEM_PLUS' onclick='addToBasket(\"[ITEMNO]\",\"QS[ITEMNO]\")'>Add to Basket &#187;</div></div>\
</div>";

  this.small_template="\
<div id='ITEM_[KEY]' class='ITEM_DIV'>\
<div class='ITEM_THUMBNAIL' onClick='[OBJECTNAME].readMore([KEY],true)'>&nbsp;</div>\
<div class='ITEM_FUNCTIONS'>\
<div class='ITEM_NUMBER'>[ITEMNO]</div>\
<div id='ITEM_DESC_[KEY]' class='ITEM_SHORT_DESC'>[TEXT]\
<div class='ITEM_BODY'>[BODY]</div>\
</div>\
<div class='ITEM_CTR_IMAGE'>[ctrDiv]</div>\
<div class='ITEM_UNIT'>Sales unit: <b>[UNIT]</b></div>\
<div class='ITEM_PRICE'>[CURRENCYNAME] [PRICE]</div>\
<div class='ITEM_NUMBER_OF'><input class='noBorder INO' onFocus='setFocus(this);this.value=\"\";' onBlur='setBlur(this)' type=text id=I[ITEMNO] name=I[ITEMNO] value=1></div>\
<div class='ITEM_PLUS' onClick='addToBasket(\"[ITEMNO]\",\"I[ITEMNO]\");'>Add to Basket &#187;</div>\
</div>\
</div>\
  ";

  this.large_template="\
  <div class='ITEM_DIV_LARGE'>\
    <div id='ITEM_NAVBAR' class=corner>\
      <div id='ITEM_VIEWER_ANTTRACK'>[ANTTRACK]</div>\
      <div id='ITEM_VIEWER_NAV_HOLDER'>\
        <div class='ITEM_VIEWER_NAV' onClick='[OBJECTNAME].readMore([PREVIOUSKEY],false);' onMouseOut='nd()'><img src='/graphics/search/backward.png' style='float:left;padding-right:3px;' border=0 alt='Previous item'> <div>Previous</div></div>\
        <div class='ITEM_VIEWER_NAV' onClick='[OBJECTNAME].readMore([NEXTKEY],true);' onMouseOut='nd()'><div style='padding-right:3px;float:left;'>Next</div> <img src='/graphics/search/forward.png' border=0 alt='Next item'></div>\
        <div id='ITEM_VIEWER_CLOSE'  onClick='[OBJECTNAME].readLess();'><img src='/graphics/search/close.png' border=0 alt='Close'>&nbsp;Close</div>\
      </div>\
    </div>\
    <div id='ITEM_SHORT_DESC_LARGE'>[TEXT]</div>\
    <div class='ITEM_IMAGE_LARGE'><img src='/img/420X420/[IMGSUBDIR][IMAGEBANKNR].jpg' onerror='imageLoadError(\"[GROUP1]\",\"[GROUP2]\",\"[ITEMNO]\",\"[IMAGEBANKNR]\",this.src,420);' border=0 alt=''></div>\
    <div class='ITEM_INFORMATION_LARGE'>\
      <div class='ITEM_PRINT' onClick='[OBJECTNAME].printFriendly([ITEMNO])'><img src='/graphics/search/print.gif' border=0 alt=''></div>\
      <div class='ITEM_PRINT_TEXT' onClick='[OBJECTNAME].printFriendly([ITEMNO])'>Print friendly</div>\
      <div class='ITEM_TIP_A_FRIEND' onClick='[OBJECTNAME].tipAFriend([ITEMNO])'><img src='/graphics/search/envelope.gif' border=0 alt=''></div>\
      <div class='ITEM_TIP_A_FRIEND_TEXT' onClick='[OBJECTNAME].tipAFriend([ITEMNO])'>Tip a colleague</div>\
      <div class='ITEM_NUMBER_LARGE'>[ITEMNO]</div>\
      <div id='ITEM_BODY_LARGE'>[BODY] [PDF]</div>\
    </div>\
    <div class='ITEM_INFORMATION_BOTTOM'>\
      <div class='ITEM_UNIT'>Sales unit: <b>[UNIT]</b></div>\
      <div class='ITEM_CTR_IMAGE'>[ctrDiv]</div>\
      <div id='ITEM_TV_COMPAT_CODES'></div>\
      <div id='ITEM_PROPERTIES'></div>\
      <div class='ITEM_PRICE_LARGE'>[CURRENCYNAME] [PRICE]</div>\
      <div class='ITEM_NUMBER_OF_LARGE'><input class='noBorder INO' onFocus='setFocus(this);this.value=\"\";' onBlur='setBlur(this)' type=text id=IL[ITEMNO] name=IL[ITEMNO] value=1></div>\
      <div class='ITEM_PLUS' onClick='addToBasket(\"[ITEMNO]\",\"IL[ITEMNO]\");'>Add to Basket &#187;</div>\
      <div class='ITEM_ROYAL_CLUB'>&nbsp;</div>\
    </div>\
    <div id='ITEM_NAVBAR' class=corner>\
      <div id='ITEM_VIEWER_ANTTRACK'>[ANTTRACK]</div>\
      <div id='ITEM_VIEWER_NAV_HOLDER'>\
        <div class='ITEM_VIEWER_NAV' onClick='[OBJECTNAME].readMore([PREVIOUSKEY],false);' onMouseOut='nd()'><img src='/graphics/search/backward.png' style='float:left;padding-right:3px;' border=0 alt='Previous item'> <div>Previous</div></div>\
        <div class='ITEM_VIEWER_NAV' onClick='[OBJECTNAME].readMore([NEXTKEY],true);' onMouseOut='nd()'><div style='padding-right:3px;float:left;'>Next</div> <img src='/graphics/search/forward.png' border=0 alt='Next item'></div>\
        <div id='ITEM_VIEWER_CLOSE'  onClick='[OBJECTNAME].readLess();'><img src='/graphics/search/close.png' border=0 alt='Close'>&nbsp;Close</div>\
      </div>\
    </div>\
  </div>\
  ";

  this.printFriendly=function(itemno){window.open("/iteminfo/default.ms?itemno="+itemno+"&printFriendly=true&noReInit=true&USES_LAYOUT=false","printFriendly","status=0,toolbar=0,width=587,scrollbars=1");}

  this.tipAFriend=function(itemno){
    if(!sessionObj.loggedOn&&sessionObj.tipCounter>0){
      alert("Dear visitor, you have to logon to be able to send again.");
      return false;
    }
    window.open("/iteminfo/emailForm.ms?itemno="+itemno+"&noReInit=true&USES_LAYOUT=false","tip","status=0,toolbar=0,width=630,height=420,scrollbars=1");
  }

  this.setSections=function(){
    var HTML="\
    <div id='SUBGROUP_HOLDER' class=corner style='background-color:"+(!empty(getUrlParam("colorCode"))?urldecode(getUrlParam("colorCode")):"#69737D")+"'>\
    <div class=boxHeader>Sections</div>\
    <div id='SUBGROUP_SUBGROUPS'>";
    var i=1;

   for(var sg in this.GROUP2){
    HTML+="<div id='SG_"+i+"' class='SUBGROUP_NAME' onClick='searchObj.toggleSections("+i+");searchObj.highlightSubgroup(this);searchObj.readLess();'><img src='/graphics/search/arr_horiz.png' border=0 style='margin-right:3px;' id=ST_"+i+"> "+sg+"</div>";
    HTML+="<div class='SECTIONS_HIDDEN' id='SECTIONS_"+(i++)+"'>";
    for(var us in this.GROUP2[sg]){
     HTML+="<div class=SECTION id='SG_"+i+"' onClick='searchObj.usShow(\""+sg.replace(/&/g,'\\&')+"\",\""+us+"\");searchObj.highlightSubgroup(this);searchObj.readLess();'>"+this.ucFirstAll(us)+"</div>";
     i++;
    }
    HTML+="</div>";
   }
    HTML+="<div id='SUBGROUP_LQ' onClick='searchObj.showLimitedQuantityItems();searchObj.readLess();'>Special Offer</div>\
      </div><div class=boxFooter>&nbsp;</div>\
      </div>";
    $('#Subgroups').html(HTML).addClass('corner');
  }// end setSections

  this.usShow=function(sg,us){
    var text = this.cleanText( sg + " " + us );
    this.underSectionText=text;
    text = text.replace(/"/g,'&#34;').replace(/'/g,'&#39;');
    var len=this.srArr.length;
    this.reset();
    for(var key=0;key<len;key++){
      if( (this.srArr[key][3]+" "+this.srArr[key][8]).toUpperCase() === text ) this.showArr.push(key);
    }
    this.showSomeMoreItems(8);
  }//-- end usShow

  this.reset=function(){
    $("#SEARCH_RESULT_DIV").html("");
    $(window).scrollTop(0);
    this.lastVisibleItem=0;
    this.previousScrollPosition=0;
    this.showArr=[];
  }

  this.toggleSections=function(i){
    $('#GUIDE').hide();
    layout.hideBottomBanner();
    if(this.isSectionOpen(i))
      this.closeSection(i);
    else{
      this.closeAllSections();
      this.openSection(i);
    }
  }

  this.closeAllSections=function(){
    $('#GUIDE').hide();
    var t=1;
    for(var sg in this.GROUP2){
      this.closeSection(t);t++;
      for(var s in this.GROUP2[sg]){t++;}
    }
  }//--

  this.openSection=function(i){$("#SECTIONS_"+i).attr('class','SECTIONS_SHOWN');$('#ST_'+i).attr('src','/graphics/search/arr_vertic.png');}//--

  this.closeSection=function(i){$("#SECTIONS_"+i).attr('class','SECTIONS_HIDDEN');$('#ST_'+i).attr('src','/graphics/search/arr_horiz.png');}//--

  this.isSectionOpen=function(i){return $("#SECTIONS_"+i).attr('class')=='SECTIONS_SHOWN';}

  this.highlightSubgroup=function(ssObj){
    $('.SECTION_HIGHLIGHT').removeClass('SECTION_HIGHLIGHT').addClass('SECTION');$(ssObj).attr('class','SECTION_HIGHLIGHT');
  }//--

  this.showLimitedQuantityItems=function(){
    this.underSectionText="showLimitedQuantityItems";
    $('#GUIDE').hide();
    this.toggleMaxims("none");
    var LEN=this.srArr.length;
    this.reset();
    for(var key=0;key<LEN;key++){ if(this.srArr[key][10]=='1') this.showArr.push(key);}
    this.showSomeMoreItems(8);
  }//--

  this.remTvCountryCode=function (TEXT,codeless){
    var tmp=TEXT.split(/ AB/);
    if(count(tmp)>1){
      this.tvCountryCodesStr="AB"+tmp[1];
      EXT = codeless ? tmp[0] : tmp[0]+" "+this.tvCountryCodesStr;
    }
    return TEXT.replace('&amp;apos;','&#34;');
  }//--

  this.getPercent=function(data){
    if(data.indexOf('_')!=-1){
      data=data.split("_");
      return data[data.length-1];
    }
    return false;
  }//--

  this.ctrDiv=function(ITEM){
    var content="";
    switch(true){
      case(!empty(ITEM[13])): content = this.getPercent(ITEM[13])+"&nbsp;&#37;&nbsp;Off";break;
      case(ITEM[9]=='1')    : content = "Super Offer";
      case(ITEM[10]=='1')   : content = "Special Offer";
    }
    return content !== "" ? "<div>"+content+"</div>" : "";
  }//--

  this.ucFirstAll=function(str){
    var tmp=str.toLowerCase().split(' ');
    for(var key in tmp)tmp[key]=ucfirst(tmp[key]);
    return tmp.join(' ');
  }//--

  this.showSomeMoreItems=function(number){
    var tmp=this.lastVisibleItem+number;
    var len = this.showArr.length;
    while(tmp>this.lastVisibleItem && this.lastVisibleItem < len ){
      this.showItem(this.showArr[this.lastVisibleItem++]);
    }
    if( this.lastVisibleItem == len ) this.addSpace();
  }//--

  this.addSpace=function(){
    $("#SEARCH_RESULT_DIV").append("<div class=space></div>");
  }

  this.setItemCategory=function (text){
    $('#ITEM_CATEGORY').html(
      !empty(getUrlParam('cn'))
      ?
      urldecode(getUrlParam('cn'))
      :
      ("Search result for: "+urldecode(getUrlParam('q'))+(!isUndefined(text)&&!empty(text)?": "+text:"") )
    );
  }

  this.ORG_CONTENT_DIV="";
  this.COUNTRY_CODE_CHART="";

  this.process_item_large=function(){
    $('#ITEM_SHORT_DESC_LARGE').html(this.remTvCountryCode($('#ITEM_SHORT_DESC_LARGE').text(),true));
    if(!empty(this.tvCountryCodesStr)){
      this.makeTheCountryCodeChart();
      this.tvCountryCodesStr=0;
    }
  }//--

  this.makeTheCountryCodeChart=function(){
    var HTML="<div CLASS='ITEM_COMPAT_CODES'>Compatibility codes</div>";
    var tmp=this.tvCountryCodesStr.split(' ');
    var len= !isUndefined(tmp[0]) ? tmp[0].length : 0;
    for(var i=0;i<len;i++)HTML+="\<div class=tvCode onmouseOver='" + this.objectName + ".showTvCodeInfo(\""+tmp[0].charAt(i)+"\")' onMouseOut='nd();'\>"+tmp[0].charAt(i)+"\<\/div\>";
    len= !isUndefined(tmp[1]) ? tmp[1].length : 0;
    for(var i=0;i<len;i++)HTML+="\<div class=vcrCode onmouseOver='" + this.objectName + ".showVcrCodeInfo(\""+tmp[1].charAt(i)+"\")' onMouseOut='nd();'\>"+tmp[1].charAt(i)+"\<\/div\>";
    $('#ITEM_TV_COMPAT_CODES').html(HTML).show();
  }//--

  this.showTheCountryCodeChart=function(){$('#CONTENT_DIV').html(this.COUNTRY_CODE_CHART);}//--

  this.showTheOrgContentDiv=function(){$('#CONTENT_DIV').html(ORG_CONTENT_DIV);}//--

  this.showTvCodeInfo=function(CODE){overlib(this.tvCountryInfoArr[CODE].replace(new RegExp("\\n","g"),"\<br\>"),CAPTION,"Code '"+CODE+"' Description:",STICKY,VAUTO,HAUTO);}//--

  this.showVcrCodeInfo=function(CODE){overlib(this.vcrInfoArr[CODE].replace(new RegExp("\\n","g"),"\<br\>"),CAPTION,"Code '"+CODE+"' Description:",STICKY,VAUTO,HAUTO);}//--

  this.tvCountryInfoArr=[];
  this.tvCountryInfoArr["A"]="PAL B/G colour TV system used mainly in Western\nEurope and various overseas countries.";
  this.tvCountryInfoArr["B"]="SECAM B/G or MESECAM systems used in the\nMiddle East and most North African countries.";
  this.tvCountryInfoArr["C"]="SECAM L colour TV system used in France and\nother locations able to receive French programmes.";
  this.tvCountryInfoArr["D"]="SECAM D/K colour TV system used in Eastern\nEuropean countries and various African countries.";
  this.tvCountryInfoArr["F"]="NTSC 3.58 &ldquo;off-the-air&rdquo; colour TV system\nmainly used in North and South America.";
  this.tvCountryInfoArr["I"]="PAL I, UHF only colour TV system used mainly\nin UK";
  this.tvCountryInfoArr["K"]="PAL I, VHF &amp; UHF colour TV system used mainly\nin UK &amp; Africa.";
  this.tvCountryInfoArr["M"]="PAL M used in Brazil";
  this.tvCountryInfoArr["N"]="PAL N Colour TV system";
  this.tvCountryInfoArr["P"]="PAL D/K";
  this.tvCountryInfoArr["*"]="";
  this.vcrInfoArr=[];
  this.vcrInfoArr["Info"]="Playback of pre-recorded tapes only";
  this.vcrInfoArr["Q"]="Playback of SECAM L colour TV\nsystem via video recorder. Cannot receive &ldquo;off-the-air&rdquo; programmes.";
  this.vcrInfoArr["Y"]="Playback of NTSC 3.58 colour TV system via video recorder. Cannot receive &ldquo;off-the-air&rdquo; programmes.";
  this.vcrInfoArr["T"]="Playback of NTSC on PAL TV with PAL60 feature.";

  this.show_item_viewer=function(HTML,itemnumber){
    $('#ITEM_VIEWER').html(HTML);
    this.maintainTopPosition();
    $('#ITEM_VIEWER').show(200);
    this.process_item_large();
    this.getItemProperties(itemnumber);
    royal_club_item_points(itemnumber);
  }//--

  this.httpRequest = null;
  this.quickSearchOpened=false;

  this.searchFunctionCheck=function(formObj){
    if( formObj.q.value.length < 3 ){
      alert("Please use 3 or more characters to define your search");
      return false;
    }
    return true;
  }

  this.addItemViewer=function(){
    if( !$('#ITEM_VIEWER').length ) $('#contentWrapper').prepend( "<div id='ITEM_VIEWER'></div>" );
  }

 this.quickSearch=function(q,e){
  if( empty(q) ){ $('#quickSearch').hide(); return; }
  if( this.httpRequest ) this.httpRequest.abort();

  if( e.keyCode == 13 ){
    document.searchForm.submit();
    return;
  }

  if(trim(q).length>2){
    this.httpRequest = $.ajax({
      type:'GET',
      url:'/php/json.php',
      dataType:'json',
      context:this,
      data:'q='+urlencode(q)+'&limit=10&currencyName='+sessionObj.currencyName,
      success:function(retArr){

        this.srArr = retArr;
        this.addItemViewer();
        //if( !$('#ITEM_VIEWER').length ) $('#contentWrapper').prepend( "<div id='ITEM_VIEWER'></div>" );

        var HTML = "<div id=qstop class=corner style='float:left;font-size:8pt;background:#ECECEC;height:30px;line-height:30px;'><div id=qstext style='margin-left:10px;float:left;width:620px'>Your search result</div><div title='Close search results' id=qsclose style='color:navy;margin-right:10px;float:left;width:80px;text-align:right;cursor:pointer;' onclick='qsObj.closeqs();'>Close&nbsp;</div></div>";

        var len = this.srArr.length;
        this.showArr = [];
        for(var key=0;key<len;){
          this.showArr.push(key);
          HTML += this.templator(key++,"qs_template");
        }

        HTML += "<div id=qsviewall class=corner style='float:left;width:720px;background:#ECECEC;text-align:right;font-size:8pt;cursor:pointer;lineHeight:30px;height:30px;color:navy;' title='Click to view all your search results' onClick=\"document.location.href='/shop/search.ms?q=" + urlencode(q) +"';\"><div style='margin-top:8px;float:right;'>View all&nbsp;&#187;&nbsp;&nbsp;&nbsp;</div></div>";

        $('#quickSearch').html(HTML);

        $('#quickSearch').css({background:'#ffffff',position:'relative',left:'188px',top:'-60px',zIndex:'15',display:'none',width:'720px',maxHeight:'725px',overflow:'auto',border:'6px solid #ffffff'});
        $('.qscat'      ).css({background:'#eeeeee',fontWeight:'bold',width:'100%'});
        $('.qsitem'     ).css({verticalAlign:'top',borderBottom:'1px dotted #cccccc',width:'100%',float:'left',fontWeight:'bold'}).hover(function(){$(this).addClass('divHover')},function(){$(this).removeClass('divHover')});
        $('.qslink'     ).css({width:'65px',height:'65px',textAlign:'center',float:'left',marginRight:'5px',marginLeft:'5px'});
        $('.qstitle'    ).css({lineHeight:'65px',height:'65px',fontSize:'10pt',float:'left',width:'350px',borderLeft:'1px dotted #cccccc',paddingLeft:'4px',textAlign:'left',cursor:'pointer'});
        $('.qsprice'    ).css({float:'left',lineHeight:'65px',height:'65px',width:'100px',fontSize:'10pt',textAlign:'center',color:'#000000',borderRight:'1px dotted #cccccc'});
        $('.qsadd'      ).css({float:'left',textAlign:'center',lineHeight:'65px',paddingTop:'20px',width:'165px'});
        $('.qsquantity' ).css({marginRight:'2px',marginLeft:'3px',float:'left'}).children('input').css({width:'25px',height:'24px'}).focus(function(){this.value="";});

        this.quickSearchOpened=true;

        if(!len){
          this.closeqs();
        }else{
          $('#ITEM_VIEWER').hide();
          $('#quickSearch').show();
        }
      }
    });
  }
 }//--

  this.research=function(){
    var tmpArr = this.srArr;
    this.srArr = [];
    for( var key in tmpArr ){
      $.ajax({
        type:'GET',
        url:'/php/json.php',
        dataType:'json',
        async:false,
        context:this,
        data:'q='+urlencode(tmpArr[key][0])+'&limit=1&currencyName='+sessionObj.currencyName,
        success:function(retArr){
          var index = key;
          this.srArr.push( retArr[0] );
        }
      });
    }
  }

  this.closeqs=function(){
    this.quickSearchOpened=false;
    $('#quickSearch').hide(500);
  }//--

  this.previousScrollPosition=0;
  this.scrollWatcher=function(){
    if($(window).scrollTop()-this.previousScrollPosition>50){
      this.showSomeMoreItems(2);
      this.previousScrollPosition=$(window).scrollTop();
    }
  }//--

  this.highlightIndex=function(cn){
    cn = cn.replace(/&/,'&amp;');
    for(var i=0;i<32;i++){
      if($('#SHOP_INDEX_'+i+' a').html()===cn){
        $('#SHOP_INDEX_'+i).attr('class','shopIndexCellHighlight');
      }
    }
  }

}//-- End function search


function clickTracking(){

  this.report = function(type){
    $.ajax({type:"POST",url:"/Admin/clickTracking.ms",data:"type="+urlencode(type)});
  }

}


function errorReporting(){

  this.report = function(msg){
    $.ajax({type:"POST",url:"/Admin/errorReporting.ms",data:"error="+urlencode(msg)});
  }

}


function imageLoadError(group1,group2,itemnumber,imagebanknr,msg,size){
  $.ajax({type:"POST",url:"/Admin/imageLoadError.ms",data:"group1="+urlencode(group1)+"&group2="+urlencode(group2)+"&itemnumber="+urlencode(itemnumber)+"&imagebanknr="+urlencode(imagebanknr)+"&msg="+urlencode(msg)});
  $('img[src='+ msg +']').attr('src','/img/'+size+'X'+size+'/missingImage.jpg');
  clickTrackingObj.report("Item image missing");
}

function missingImageError(msg){
  $.ajax({type:"POST",url:"/Admin/imageLoadError.ms",data:"msg="+urlencode(msg)});
}

/* Search ends */

/* layoutObj starts */

var layout={
  favoriteArr:[],
  bottomBannerArr:[],
  init:function(){
    window.onresize=function(){layout.adjustContentWrapperHeight();}
    if(!$('#pageWrapper').length) return;
    this.navigationHeight=112;
    this.layoutHeight = 920;
    this.layoutWidth=1120;
    this.wrapperObj=$("#pageWrapper");
    this.contentWrapperObj=$("#contentWrapper");
    /*contentWrapper's height is set to 672px*/
    this.navigationHolderDivObj=$("#navigationHolder").length?document.getElementById("navigationHolder"):false;
    this.processing=false;
    if(typeof(window.innerWidth)=='number'){
      this.innerWidth=window.innerWidth;
      this.innerHeigh=window.innerHeight;
    }else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
      this.innerWidth=document.documentElement.clientWidth;
      this.innerHeight=document.documentElement.clientHeight;
    }else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
      this.innerWidth=document.body.clientWidth;
      this.innerHeight=document.body.clientHeight;
    }
    this.innerHeight=isUndefined(this.innerHeight)?0:this.innerHeight;
    this.innerWidth=isUndefined(this.innerWidth)?0:this.innerWidth;
    this.layoutLeftPosition=(this.innerWidth-this.layoutWidth)/2;

    if( isGuest ){
      this.hideCustomerFunctions();
    }else{
      this.hideGuestFunctions();
      this.debitorNo = getCookie( 'cookiesVar_debitorNo' );
      if( this.debitorNo ){
        $('#rememberMe').attr('checked',true);
      }else{
        $('#rememberMeHolder').hide();
        $('#rememberMe').attr('disabled',true);
      }
    }
    if(this.favoriteArr.length){
      this.showFavorites();
      this.populateFavorites();
      this.hideCatalogues();
    }

    this.bottomBannerArr = $('#bottomBanner').children();
    this.bannerRotator(1);

    this.adjustContentWrapperHeight();
  },

  bannerRotator:function(bannerindex){
    if( $("#bb" + bannerindex ).length == 0 ) bannerindex=1;
    //hideAll
    for(var key = 1; key <= this.bottomBannerArr.length; key++){
      if( $("#bb" + key ).length ) $("#bb" + key ).hide();
    }
    //show the designated banner
    if( $("#bb" + bannerindex ).length ){
      $('#bottomBanner').css({backgroundColor:$("#bb"+bannerindex).css('background-color')});
      $("#bb"+bannerindex).show();
    }
    //10 seconds pause
    setTimeout("layout.bannerRotator("+ ++bannerindex +")",20000);
  },
  setShoppingBasketSubtotal:function(subtotal){
    $('#basketSubTotal').html( parseFloat( subtotal ).toFixed(2) + " " + sessionObj.currencyName );
    sessionObj.subtotal = parseFloat( subtotal ).toFixed(2);
  },
  setShoppingBasketNumberOfItems:function(numberOfItems){
    $('#basketNumberOfItems').html( numberOfItems + " items" );
    sessionObj.numberOfItems = numberOfItems;
  },

  hideCatalogues:function(){hideLayer('Catalogues');},
  hideBrands:function(){hideLayer('Brands');},
  hideSubgroups:function(){hideLayer('Subgroups');},
  showSubgroups:function(){showLayer('Subgroups');},
  hideBottomBanner:function(){hideLayer('bottomBanner');},
  showBottomBanner:function(){showLayer('bottomBanner');},
  hideGuestFunctions:function(){hideLayer('guestFunctions');},
  hideCustomerFunctions:function(){hideLayer('customerFunctions');},
  hideRememberMe:function(){hideLayer('rememberMeHolder');},
  showRememberMe:function(){showLayer('rememberMeHolder');},
  showFavorites:function(){showLayer('favorites');},
  hideFavorites:function(){hideLayer('favorites');},
  hideShopIndex:function(){hideLayer('shopIndex');},
  showShopIndex:function(){showLayer('shopIndex');},
  showShopIndexDropdown:function(){showLayer('shopIndexDropdown');},
  hideShopIndexDropdown:function(){hideLayer('shopIndexDropdown');},
  hideSuperOffer:function(){hideLayer('superOffer');},
  showSuperOffer:function(){showLayer('superOffer');},
  showAntTrack:function(){showLayer('antTrack');},
  hideShopIndexRollout:function(){hideLayer('SHOP_INDEX_ROLLOUT');},
  showShopIndexRollout:function(){showLayer('SHOP_INDEX_ROLLOUT');},
  hideShopIndexRollback:function(){hideLayer('SHOP_INDEX_ROLLBACK');},
  showShopIndexRollback:function(){showLayer('SHOP_INDEX_ROLLBACK');},
  showCurrency:function(){$('#currency').show();},
  hideCurrency:function(){$('#currency').hide();},
  showShoppingBasketMessages:function(){showLayer('shoppingBasketMessages');},
  hideShoppingBasketMessages:function(){hideLayer('shoppingBasketMessages');},
  toggleShopIndex:function(){this.hideShopIndexDropdown();this.showShopIndex();this.showShopindexBoxes(1,32);},
  toggleBordersOn:function(objid){
    $("#"+objid).css({borderTop:"2px solid blue",borderLeft:"2px solid blue",borderRight:"2px solid blue",borderBottom:"2px solid white"});
  },
  toggleBordersOff:function(objid){
    $("#"+objid).css({borderTop:"2px solid white",borderLeft:"2px solid white",borderRight:"2px solid white",borderBottom:"2px solid blue"});
  },
  hideShopindexBoxes:function(from,to){
    for(var i = from ; i <= to ; i++) //setTimeout("hideLayer('SHOP_INDEX_"+i+"')", i*75 );
      hideLayer('SHOP_INDEX_'+i);
  },
  showShopindexBoxes:function(from,to){
    for(var i = from ; i <= to ; i++) setTimeout("showLayer('SHOP_INDEX_"+i+"')", i*75 );
  },
  populateFavorites:function(){
    var HTML = "<div class='boxHeaderRight favoriteHeader cornerTop' style='background-color:#009933;height:10px;width:100%;'>&nbsp;</div>";
    HTML += "<div id=FavoritesText style='background-color:#009933;'>My favorites</div>";
    for( var key = 0; (key < 5 && key < layout.favoriteArr.length ) ; key++ ){
      HTML += "<div class=fItem><!-- <div class=fItemNumber>" + layout.favoriteArr[key][0] + "</div> -->";
      HTML += "<div class=fItemText>" + textCutter( layout.favoriteArr[key][1] , 28 ) + "</div>";
      HTML += "<div class=fItemPrice>" + sessionObj.currencyName + " " + layout.favoriteArr[key][2].toFixed(2) + " </div>";
      HTML += "<div class=fAddToBasket onClick='addToBasket(" + layout.favoriteArr[key][0] + ",\"fav"+key+"\")'>Add</div>";
      HTML += "<div class=fAddToBasket><input type=text value=1 id=fav"+key+" name=fav"+key+" onFocus='setFocus(this);this.value=\"\";' size=1 class=noBorder style='font-size:7pt;height:12px;margin-left:3px;margin-right:3px;' onBlur='setBlur(this);'></div>"; HTML += "<div class=fAddToBasket onClick='addToBasket(" + layout.favoriteArr[key][0] + ",\"fav"+key+"\")'>to basket</div></div>";
      HTML += "<div style='height:1px;'>&nbsp;</div>";
    }
    HTML += "<div class=boxFooterRight>&nbsp;</div>";
    $('#favorites').html( HTML );
  },
  setShoppingBasketMessages:function(shoppingBasketMessages){if(!empty(shoppingBasketMessages)){this.showShoppingBasketMessages();$('#shoppingBasketMessagesText').html(shoppingBasketMessages);}},
  initLogon:function(){
    document.login.deb.focus();this.hideSuperOffer();
    if( document.location.href.indexOf('logon.ms') === -1 ) document.location.href='/logon.ms';
  },
  initUSC:function(){this.hideBottomBanner();},
  //visibleAreaHeight:function(){alert($(window).height()); return ( $(window).height() - this.navigationHeight ) > 709 ? 800 : ( $(window).height() - this.navigationHeight + 80 );},
  visibleAreaHeight:function(){return $(window).height();},
  initSearch:function(){this.hideShopindexBoxes(2,32);this.showShopIndexRollout();},
  initFp:function(){this.hideShopIndexRollout();},
  setPageContent:function(content){$('#pageContent').html(content);},
  adjustContentWrapperHeight:function(){$('#contentWrapper').css({height:"100%"});},
  setShoppingBasketData:function( totalcurrency, totalnumberordered ){
    layout.setShoppingBasketSubtotal(totalcurrency);
    layout.setShoppingBasketNumberOfItems(totalnumberordered);
  }, // end setShoppingBasketData
  toggleLeftColomn:function(){  $('#leftColomn').toggle(); },
  toggleBasket:function(){  $('#Basket').toggle(); },
  toggleBottomBanner:function(){ $('#bottomBanner').toggle(); },
  toggleTopBanner:function(){ $('#topBanner').toggle(); },
  toggleRightColomn:function(){  $('#rightColomn').toggle(); },
  checkoutLayout:function(){
    layout.toggleLeftColomn();
    layout.toggleBasket();
  },
  noCols:function(){ $('#leftColomn').hide();$('#rightColomn').hide(); }
};

/* layoutObj ends */

/* MySQL Starts */

function initRowsObj( NUMROWS , IS_ERROR , ERROR_MSG ){
  this.NUMROWS = NUMROWS;
  this.IS_ERROR = IS_ERROR;
  this.ERROR_MSG = ERROR_MSG;
  this.COLOMNS = [];
  this.RESULT = [];
}

// replaceRowElements
function RRE( str ){
  return empty( str )?'':str.replace( /&apos;/g , '&#39;' ).replace( /:DELIM:/g , "|" ).replace( /:LF:/g , "\n" ).replace( /:CR:/g , "\r" ).replace( /:TAB:/g , "\t" );
}

/* MySQL Ends */

/* Session Starts */
function initSession(){

  if( !sessionIsAlive ){
    deleteCookie( 'cookiesVar_loggedOn' , '/' , SERVER_NAME );
    deleteCookie( 'cookiesVar_sessionid', '/' , SERVER_NAME );
    deleteCookie( 'sessionid', '/' , SERVER_NAME );
  }

  setCookie( 'sessionid', sessionid, 1, '/', SERVER_NAME, 0 );
  setCookie( 'sessionTime', UTS , 1, '/', SERVER_NAME, 0 );

  var preSessionid     = getCookie( 'cookiesVar_sessionid' );
  var preLoggedOn      = getCookie( 'cookiesVar_loggedOn' );
  var cookiedSessionid = getCookie( 'sessionid' );
  var oldSessionTime   = getCookie( 'sessionTime' );

  var d = new Date();
  var UTS = d.getTime();

  //If the session is X hours old
  if( UTS > oldSessionTime + ( 5 * 3600 ) ){
    cookiedSessionid = false;
    deleteCookie( 'sessionid', '/' , SERVER_NAME );
  }
  if( !sessionObj.sessionid && empty( cookiedSessionid ) ){
    deleteCookie( 'sessionid', '/' , SERVER_NAME );
    deleteCookie( 'cookiesVar_loggedOn' , '/' , SERVER_NAME );
    deleteCookie( 'cookiesVar_sessionid', '/' , SERVER_NAME );
    document.location.href = MS_SELF + (!empty( itemno ) ? "?itemno=" + itemno : "");
    return;
  }else if( !sessionObj.sessionid && cookiedSessionid ){
    document.location.href = MS_SELF + ( !empty( itemno ) ? "?itemno=" + itemno : "" );
    return;
  }else if( sessionObj.sessionid && !cookiedSessionid ){
    setCookie( 'sessionid', sessionid, 1, '/', SERVER_NAME, 0 );
    setCookie( 'sessionTime', UTS , 1, '/', SERVER_NAME, 0 );
  }
  if( preSessionid && !sessionObj.sessionid && preLoggedOn ){
    //this.document.location.href = this.document.location.href + ( this.document.location.href.indexOf( '?' ) == -1 ? "?" : "" ) + "sessionid=" + preSessionid;
  }else if ( !sessionObj.sessionid ){
    deleteCookie( 'cookiesVar_loggedOn' , '/' , SERVER_NAME );
    deleteCookie( 'cookiesVar_sessionid', '/' , SERVER_NAME );
  }

  if( !empty( itemno ) && PATH_INFO != "/shop/search.ms" && empty( getUrlParam('noReInit') ) ){
    openItem( itemno );
  }

}// end function initSession

function openItem( itemno ){
  document.location.href= "/shop/search.ms?q="+itemno;
}
/* Session ends */

/* Cookies starts */

//--------------------------------------------------------------------------
var isCookieEnabled = navigator.cookieEnabled;
//--------------------------------------------------------------------------
function getCookie( name ) {
  if( !isCookieEnabled ) return false;
  var start = document.cookie.indexOf( name + "=" );
  var len = start + name.length + 1;
  if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
    return null;
  }
  if ( start == -1 ) return null;
  var end = document.cookie.indexOf( ";", len );
  if ( end == -1 )
    end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
}
//--------------------------------------------------------------------------
function setCookie( name, value, expires, path, domain, secure ) {
  if( !isCookieEnabled ) return false;
  var today = new Date();
  today.setTime( today.getTime() );
  if ( expires ) {
    expires = expires * 1000 * 60 * 60 * 24;
  }

  if( value == 'now' ) value = today.setTime( today.getTime() );

  var expires_date = new Date( today.getTime() + (expires) );
  document.cookie = name+"="+escape( value ) + ( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + ( ( path ) ? ";path=" + path : "" ) + ( ( domain ) ? ";domain=" + domain : "" ) + ( ( secure ) ? ";secure" : "" );
}
//--------------------------------------------------------------------------
function deleteCookie( name, path, domain ) {
  if( !isCookieEnabled ) return false;
  if ( getCookie( name ) )
    document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
//--------------------------------------------------------------------------
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}
//--------------------------------------------------------------------------
function deleteLoginCookies(){
  //Deletting the evt. cookie which indicates the user logout
  deleteCookie( 'cookiesVar_loggedOut', '/' , SERVER_NAME );
  //deletting the previous cookies too
  deleteCookie( 'cookiesVar_debitorNo', '/' , SERVER_NAME );
  deleteCookie( 'cookiesVar_SomeThing', '/' , SERVER_NAME );
}
//--------------------------------------------------------------------------
function setLoginCookies( sessionid ){
  //Inserting coockie to indicate that the user is logged on
  setCookie( 'cookiesVar_loggedOn'    , '1'                     , 0.25, '/', SERVER_NAME , 0 );
  setCookie( 'cookiesVar_sessionid'   , sessionObj.sessionid    , 1   , '/', SERVER_NAME , 0 );
  setCookie( 'sessionid'              , sessionObj.sessionid    , 0.25, '/', SERVER_NAME , 0 );
  setCookie( 'cookiesVar_currencyCode', sessionObj.currency     , 0.25, '/', SERVER_NAME , 0 );
  setCookie( 'cookiesVar_currencyName', sessionObj.currencyName , 0.25, '/', SERVER_NAME , 0 );
  setCookie( 'cookiesVar_countryCode' , sessionObj.country      , 0.25, '/', SERVER_NAME , 0 );
  setCookie( 'cookiesVar_countryName' , sessionObj.countryName  , 0.25, '/', SERVER_NAME , 0 );
}
//--------------------------------------------------------------------------

/* Cookies ends */

/* Super Class + HTML */

/***
* Remember to add this.template in the sub classes
* it is good.
***/
var superClassObj;

function superClass( containerObjectID ){

  this.htmlObj = html;
  this.htmlObj();

  this.HTML     = "";
  this.conObjID = containerObjectID;
  this.conObj   = {};
  this.obj      = {};
  this.sortType = "<";
  this.list     = [];
  this.OVERLIB  = "OVERLIB";
  // Call to server makes an IFRAME called RSIFrame with the same ID
  this.iframeId = "RSIFrame";
  this.tableID = this.conObjID + "_TABLE";
  this.verticalTitle = true;
  this.addResultRowFlag = false;
  this.printFriendlyFlag = false;
  this.bgc = -1;
  this.bgcArr = ['#CFE9FF','#B5CCDF','#EEEEEE'];
  this.csvLink = "";

  this.setConObjID = function(newConObjID){
    if( !empty( newConObjID ) ) this.conObjID = newConObjID;
  }

  this.addval = function( val ){
    return {value:val};
  }

  this.addrows = function( rows ){
    return {rows:rows};
  }

  this.populate = function( Obj ){
    this.Obj = Obj;
    this.list.push( Obj );
  }// end function populate

  this.populateHTML = function( HTML ){
    this.HTML += HTML;
  }

  // Parent -> Child call
  this.PCCall = function(theCall){
    return "window.frames[0]." + theCall;
  }

  this.cout = function(){

    var argv = this.cout.arguments;
    var argc = this.cout.arguments.length;

    if( argc > 0 ){
      eval("this.COUT_" + argv[0] + "();" );
      return;
    }

    $('#'+this.conObjID).html(this.HTML);
    $('#'+this.conObjID).show();
  }

  this.COUT_OVERLIB = function(){
    overlib(this.HTML,CAPTION,"asdasd",STICKY);
  }

  this.COUT_PARENT = function(){
    this.conObj = parent.document.getElementById( this.conObjID );
    this.conObj.innerHTML = this.HTML;
    this.conObj.style.display = "block";
  }

  this.sortResult = function( sortBy , noInit){

    setCookie( "sortBy", sortBy, 365, "/", SERVER_NAME, 0 );
    setCookie( "sortType", this.sortType, 365, "/", SERVER_NAME, 0 );

    if( isUndefined(this.obj[sortBy]) ) return;

    var type = this.obj[sortBy].type;

    function cmp(a,b){
      switch( type ){
        case('string'):{
          return a[sortBy].value.replace(/\*/g , '' ).replace(/^\s*|\s*$/g,'') > b[sortBy].value.replace(/\*/g ,'' ).replace(/^\s*|\s*$/g,'');
        }break;
        case('date'):{
          return a[sortBy].value.replace(/\./g , '' ) - b[sortBy].value.replace(/\./g , '' );
        }break;
        default:{
          return a[sortBy].value - b[sortBy].value;
        }
      }
    }

    if( this.sortType == "<" ){
      this.list.sort(cmp);
      this.sortType = ">";
    }else{
      this.list.sort(cmp);
      this.list.reverse();
      this.sortType = "<";
    }

    if( isUndefined(noInit) ) this.init();

  }

  this.resetObjValues = function(){
    for( var name in this.obj ) this.obj[name].value = 0;
  }

  this.constructHTML = function(){
    this.HTML = "<span style='padding-left:20px;color:#787BAF;font-weight:bold;font-size:15px;' id=modelTitle></span>";
    this.populateHTML( "<table id='" + this.tableID + "' cellpadding=3 cellspacing=3 border=0 class='superClass scrollTable'>" );
    this.titleMenu();
    this.resetObjValues();

    this.populateHTML( "<tbody class='scrollContent'>" );
    for( var key in this.list ){
      this.populateHTML( "<tr>" );
      var flag = 2;
      for( var name in this.obj ){
        var isNumberType = false;
        if( typeof( this.list[key][name].value ) == 'number' ){
          this.obj[name].value += this.list[key][name].value;
          isNumberType = true;
        }
        this.populateHTML( "<td style='" + ( flag % 2 == 0 ? "font-weight:bold;" : "" )+ "white-space:pre;" + ( isNumberType ? "text-align:right;" : "" ) + "'>" + this.valueException( this.list[key][name].value ) + "</td>" );
        flag++;
      }
      this.populateHTML( "</tr>" );
    }
    this.populateHTML( "</tbody>" );
    this.populateHTML( "<table>" );
  }

  this.valueException = function( value ){
    if( value == null || value == 'null' ) return "";
    //if( typeof value == 'number' ) return formatNumber(value);
    return value;
  }

  this.titleMenu = function(){
    this.populateHTML( "<thead class='fixedHeader'><tr>" );
    var c = 1;
    var style = "text-align:center;border:1px solid #ffffff;cursor:pointer;";
    for( var name in this.obj ){
      this.populateHTML( "<th style='font-size:10pt;text-align:center;vertical-align:bottom;'><div style='" + style + "' onClick='" + this.conObjID + "Obj.sortResult(\"" + name + "\");" + this.conObjID + "Obj.coloriseCell(" + c + ");'>" + this.title( name ) + "</div>" );
      if( !this.printFriendlyFlag ){
        this.populateHTML( "<div><span style='" + style + "' onClick='" + this.conObjID + "Obj.collapsCol(" + c + ")'>-</span>&nbsp;<span style='" + style + "' onClick='" + this.conObjID + "Obj.expandCol(" + c + ")'>+</span>&nbsp;" );
        this.populateHTML( "<span style='" + style + "' onclick='" + this.conObjID + "Obj.coloriseResTable(" + c++ + ");'>&#164;</span></div>" );
      }
      this.populateHTML( "</th>" );
    }
    this.populateHTML( "</tr></thead>" );
  }

  this.title = function( colname , vertical ){
    colname = colname.replace( /_/g , '&nbsp;' ).replace( /nummer/g , '#' ).replace( /number/g , '#' ).replace( /dato/g , '/' ).replace( /date/g , '/' ).replace( /aa/g , 'å' ).replace( /oe/g , 'ø' ).replace( /ae/g , 'æ' );
    if( this.verticalTitle ){
      colname = colname.replace( /&nbsp;/g , '<br>' );
    }
    return ucfirst( colname ).replace(/\//g,'<font color=red>&Delta;</font>').replace(/#/g,'<font color=red>#</font>');
  }

  this.addResultRowTop = function(){
    this.addResultRow(1);
  }

  this.addResultRowBottom = function(){
    var tableObj = document.getElementById( this.tableID );
    var rowsObj = tableObj.getElementsByTagName('tr');
    this.addResultRow( rowsObj.length );
  }

  this.addResultRow = function(index){
    this.addResultRowFlag = true;
    var tableObj = document.getElementById( this.tableID );
    var rowObj = tableObj.insertRow(index);
    var i = 0;
    for( var key in this.obj ){
      var cellObj = rowObj.insertCell(i++);
      cellObj.innerHTML = formatNumber( this.obj[key].value );
      cellObj.className = "resultRow";
    }
  }

  this.deleteColumn = function(){
    var allRows = document.getElementById( this.tableID ).rows;
    for (var i=0; i<allRows.length; i++) {
      if (allRows[i].cells.length > 1) {
        allRows[i].deleteCell(-1);
      }
    }
  }

  // this function will change the backgroundColor of the table rows depending on the fluxuation of the cell values in the same column.
  // same row value will result in the samme backgroundColor set
  this.coloriseResTable = function( colNum ){

    //var colorArr = [ "#FFDFFB","#FDFF0F","#7FFF90","#1FFFFB","#B0AFFF","#B5C1CF","#DFFDFF","#FFD3AF" ];
    var colorArr = [ "#FFDFFB","#B0AFFF"];
    var colorIndex = -1;
    var selectedColor;
    var colIndex = colNum - 1;
    var tableObj = document.getElementById(this.tableID);
    var rowsObjArr = tableObj.getElementsByTagName('tr');
    var cellValue = "";

    for( var key in rowsObjArr ){

      if( key == 'length' ) continue;
      if( key == 0 || ( this.addResultRowFlag && key == 1 ) || ( key == ( rowsObjArr.length - 1 ) && this.addResultRowFlag ) ) continue;

      if( $.browser.mozilla && !isFunction( rowsObjArr[key].getElementsByTagName ) ) continue;
      var cellsObjArr = rowsObjArr[key].getElementsByTagName('td');

      if( cellValue != trim( cellsObjArr[colIndex].innerHTML ) ){
        cellValue = trim( cellsObjArr[colIndex].innerHTML );
        if( colorIndex + 1 >= colorArr.length ) colorIndex = -1;
        colorIndex++;
      }
      changeBackgroundColor( rowsObjArr[key] , colorArr[colorIndex] );
    }

  }//end function colorResTable

  this.coloriseCell = function( colNum ){
    var tableObj = document.getElementById(this.tableID);
    var rowsObjArr = tableObj.getElementsByTagName('tr');
    var colorArr = [ "#FDFF00","#FDFF00"];
    var colIndex = colNum - 1;

    for( var key in rowsObjArr ){

      if( isUndefined( rowsObjArr[key] ) || !isNumber( key ) ) continue;

      if( key == 0 || ( this.addResultRowFlag && key == 1 ) || ( key == ( rowsObjArr.length - 1 ) && this.addResultRowFlag ) ) continue;

      if( $.browser.mozilla && !isFunction( rowsObjArr[key].getElementsByTagName ) ) continue;
      if( $.browser.msie && isUndefined( rowsObjArr[key].getElementsByTagName ) ) continue;
      var cellsObjArr = rowsObjArr[key].getElementsByTagName('td');
      cellsObjArr[colIndex].style.backgroundColor = "#FDFF00";
      //changeBackgroundColor( cellsObjArr[colIndex] , colorArr );
    }
  }

  this.linkResCol = function( URL , colNum ){
    var colIndex = colNum - 1;
    var tableObj = document.getElementById(this.tableID);
    var rowsObjArr = tableObj.getElementsByTagName('tr');

    for( var key in rowsObjArr ){
      if( key == 0 || ( this.addResultRowFlag && key == 1 ) || ( key == ( rowsObjArr.length - 1 ) && this.addResultRowFlag ) ) continue;

      if( $.browser.mozilla && !isFunction( rowsObjArr[key].getElementsByTagName ) ) continue;
      if( $.browser.msie && isUndefined( rowsObjArr[key].getElementsByTagName ) ) continue;

      //if( !isFunction( rowsObjArr[key].getElementsByTagName ) || isUndefined( rowsObjArr[key].getElementsByTagName ) ) continue;
      var cellsObjArr = rowsObjArr[key].getElementsByTagName('td');
      cellsObjArr[colIndex].innerHTML = '<a target=iframe href="' + URL.replace( '[REPLACE]' , urlencode( cellsObjArr[colIndex].innerHTML ) ) + '">' + cellsObjArr[colIndex].innerHTML + "</a>";
    }
  }//end function linkResCol

  this.functionalizeCol = function( eventText, useWhichCol, colNum ){
    $("#"+this.tableID).children('tbody').children('tr').each(
      function(index){
        var tmp = $(this).children('td')[colNum-1].innerHTML;
        $(this).children('td')[colNum-1].innerHTML = "<div style='cursor:pointer;text-decoration:underline;' "+ eventText.replace('[REPLACE]','"'+$(this).children('td')[useWhichCol-1].innerHTML+'"') +">"+ tmp + "</div>";
      }
    );

    /*
    for( var key in rowsObjArr ){
      if( key == 0 || ( this.addResultRowFlag && key == 1 ) || ( key == ( rowsObjArr.length - 1 ) && this.addResultRowFlag ) ) continue;
      alert(rowsObjArr[key]);
      //alert( $(rowsObjArr[key]).children('td').length )
      //var cellsObjArr = rowsObjArr[key].getElementsByTagName('td');
      //cellsObjArr[colIndex].innerHTML = '<a target=iframe href="' + URL.replace( '[REPLACE]' , urlencode( cellsObjArr[colIndex].innerHTML ) ) + '">' + cellsObjArr[colIndex].innerHTML + "</a>";
    }
    */
  }

  this.collapsCol = function(colNum){
    this.changeFontSize(colNum,"0px");
  }//end function collapsCol

  this.expandCol = function(colNum){
    this.changeFontSize(colNum,"8pt");
  }//end function collapsCol

  this.changeFontSize = function( colNum, fontSize ){
    var colIndex = colNum - 1;
    var tableObj = document.getElementById(this.tableID);
    var rowsObjArr = tableObj.getElementsByTagName('tr');
    for( var key in rowsObjArr ){
      if( key == 0 || ( this.addResultRowFlag && key == 1 ) || ( key == ( rowsObjArr.length - 1 ) && this.addResultRowFlag ) ) continue;

      if( $.browser.mozilla && !isFunction( rowsObjArr[key].getElementsByTagName ) ) continue;
      if( $.browser.msie && isUndefined( rowsObjArr[key].getElementsByTagName ) ) continue;

      //if( !isFunction( rowsObjArr[key].getElementsByTagName ) || isUndefined(rowsObjArr[key].getElementsByTagName) ) continue;
      var cellsObjArr = rowsObjArr[key].getElementsByTagName('td');
      cellsObjArr[colIndex].style.fontSize=fontSize;
    }
  }

  this.printFriendly = function(){
    this.winObj = winOpen( '/blank.ms' , 'printFriendly' );
    superClassObj = this;
    setTimeout( 'superClassObj.writeWindow()' , 1000 );
  }

  this.writeWindow = function(){
    this.printFriendlyFlag = true;
    this.constructHTML();
    this.printFriendlyFlag = false;
    this.winObj.document.body.innerHTML = this.HTML;
    this.verticalTitle = false;
    var d = new Date();
    this.winObj.document.getElementById('modelTitle').innerHTML = this.title( urldecode( getUrlParam( 'name' ) ) ) + ( getUrlParam( 'employeeName' ) ? "&nbsp;&nbsp;&nbsp;" + urldecode( getUrlParam( 'employeeName' ) ) : "" ) + "&nbsp;&nbsp;&nbsp;" + _date() + "&nbsp;" + _time();
    this.winObj.print();
    if( confirm( 'Skal vinduet lukkes efter print?' ) ){
      this.winObj.close();
    }
    superClassObj = false;
  }

  this.bgcShifter = function(){
    this.bgc++;
    if( this.bgc == this.bgcArr.length ) this.bgc = 0;
  }

  //Sorting as previously
  if( getCookie( "sortBy" ) ){
    this.sortType = getCookie("sortType" );
    this.sortResult(getCookie("sortBy"),true);
  }

}// end function superClass

function html(){

  this.inputText = function( name, value, optional ){
    return "<input type=text name='" + name + "' value='" + value + "' class=noBorder onFocus='setFocus(this);' onBlur='setBlur(this);' " + optional + ">";
  }

  this.inputCheckbox = function( name, value, optional ){
    return "<input type=checkbox name='" + name + "' value='" + value + "' class=noBorder onFocus='setFocus(this);' onBlur='setBlur(this);' " + optional + ">";
  }

  this.inputRadio = function( name, value, optional ){
    return "<input type=radio name='" + name + "' value='" + value + "' class=noBorder onFocus='setFocus(this);' onBlur='setBlur(this);' " + optional + ">";
  }

  this.textarea = function( name, value, optional ){
    return "<textarea name='" + name + "' class=noBorder " + optional + " onFocus='setFocus(this);' onBlur='setBlur(this);'>" + value + "</textarea>";
  }

  this.inputSubmit = function( value, optional ){
    return "<input type=submit name=submit class=sub value='" + value + "' " + optional + ">";
  }

  this.inputButton = function( value, optional ){
    return "<input type=button name='button' class=sub value='" + value + "' " + optional + ">";
  }

  this.inputHidden = function( name, value ){
    return "<input type=hidden name='" + name + "' value='" + value + "'>";
  }

  this.fckeditor = function( name , value , optional ){
    var obj = document.getElementById(name);
    var fck = new FCKeditor(name);
    fck.BasePath = "/js/fckeditor/";
    obj.innerHTML = fck.CreateHtml();
  }

  this.cursor_wait = function(){
    document.body.style.cursor = 'wait';
  }

  this.cursor_clear = function(){
    document.body.style.cursor = 'default';
  }

  this.printFriendlyLink = function(){
    return "<span style='cursor:pointer;font-size:8pt;color:red;text-decoration:underline;' onClick='" + this.conObjID + "Obj.printFriendly();'>Printvenlig udgave</span>";
  }

  this.getCsvLink = function(){
    this.csvLink = document.location.href + "&getCSV=true";
    return "<span style='cursor:pointer;font-size:8pt;color:red;text-decoration:underline;' onClick='window.open( " + this.conObjID + "Obj.csvLink )'>Excel-CSV udgave</span>";
  }

}// End function html

/* Super Class + HTML ends */

/* Horizontal menu starts */
//Set delay before submenu disappears after mouse moves out of it (in milliseconds)
var menuObj;
var delay_hide=500;
var submenu=[];
var prevObj = false;

function showit( which , obj ){
  if( prevObj ) resetHeadLineBorder( prevObj );
  prevObj = isObject( obj ) ? obj : prevObj;

  clear_delayhide();

  var thecontent = "";
  $('#describe').hide();
  if( which > 0 ){
    if( isObject( obj ) ) setHeadLineBorder( obj );
    if((submenu[which].match(/>(.)+</))!== null){
      $('#describe').html(submenu[which]);
      $('#describe').show();
    }else{
      $('#describe').hide();
    }
  }
  if( $("#hd"+which).length ) $('#describe').css({left:$("#hd"+which).offset().left + "px"});
}

function hideit(){window.delayhide = setTimeout("$('#describe').hide()",delay_hide);}
function resetit(e){window.delayhide=setTimeout("showit(-1 , 0 )",delay_hide);}
function clear_delayhide(){if(window.delayhide) clearTimeout(delayhide);}
function initMenu(){$('#describe').hide();}
function showHeadLineBorder( obj , is_headLine ){
  return;
  for( var i = 0 ; i < 20 ; i++ ){
    var menuObj = document.getElementById( 'h' + i );
    if( isObject( menuObj ) ){
      if( obj.id == menuObj.id ){
        setHeadLineBorder( obj )
      }else{
        resetHeadLineBorder( menuObj );
      }
    }else{
      break;
    }
  }
}
function setHeadLineBorder( obj ){obj.style.borderBottom = '1px solid #cccccc';}
function resetHeadLineBorder( obj ){obj.style.borderBottom = '';}
function showSubMenuBorder( obj ){obj.style.borderBottom = '1px solid eeeeee';}
function hideSubMenuBorder( obj ){obj.style.borderBottom = '';}
/* Horizontal menu ends */

/* Super Offer starts */
var superOffer = {
  marker : 1,
  pause : false,
  timeoutId : '',
  timersArr:[],
  count : 0,
  init : function(count){
  this.count = count;
    this.loop(0);
  },
  bringToFront : function(key){
    for( var i = 0 ; i < this.count ; i++ ){
      if( i != key ){
        $("#superOffer_" + i ).hide();
        $("#superOfferItemMarker_" + i).removeClass('superOfferItemMarkerAlt').addClass('superOfferItemMarker');
      }else{
        $("#superOffer_" + i ).show();
        $("#superOfferItemMarker_" + i).removeClass('superOfferItemMarker').addClass('superOfferItemMarkerAlt');
      }
    }
  },
  loop : function(key){
    if( this.pause ) return;
    if( key == this.count ) key = 0;
    this.bringToFront(key);
    this.timersArr.push(setTimeout( "superOffer.loop(" + ( key + 1 ) + ")" , 3000 ));
  },
  pauseIt : function(){
    this.pause = true;
    for( var key in this.timersArr ){
      clearTimeout(this.timersArr[key]);
    }
    this.timersArr = [];
  },
  unpauseIt : function(key){
    this.pause = false;
    this.loop(key);
  }
};
/* Super Offer ends*/

/* Currency starts */
var currency = {
  HTML:'',
  linkHREF:'',
  form:function(){
    this.HTML = "\
<FORM ACTION='/index.ms' NAME='form1' METHOD=get>\
<div class=boxHeaderMiddle>Welcome to Homeshopping for Diplomats</div>\
<div style='font-weight:normal;'>\
<div class=shopMessage><b>Already a Customer</b></div>\
<div class=shopMessage>If you already are registered as a customer please <a href='/logon.ms' alt='Sign In'>click here to sign in</a>.</div>\
<div class=shopMessage>&nbsp;</div>\
<div class=shopMessage><b>Want to be customer</b></div>\
<div class=shopMessage>If you enjoy diplomatic status you can create your profile <a href='/debitor/customercardhigh.ms' alt='Register'>here</a>.</div>\
<div class=shopMessage>&nbsp;</div>\
<div class=shopMessage><b>Browse www.pj.dk without login or creating a profile</b></div>\
<div class=shopMessage>In order to give important guidance and specific country information please:</div>\
<div class=shopMessage>State the country you want the orders to be delivered to:</div>\
<div class=shopMessage>\
<SELECT NAME='countryCode' id='countryCode' onBlur='setBlur(this);'><option value=''>Please choose your country<OPTION value=0>Afghanistan<OPTION value=1>Albania<OPTION value=2>Algeria<OPTION value=3>American Virgin Islands<OPTION value=4>Andorra<OPTION value=5>Angola<OPTION value=6>Antigua & Barbuda<OPTION value=7>Argentina<OPTION value=8>Armenia<OPTION value=9>Aruba<OPTION value=10>Australia<OPTION value=11,>Australian Oceania<OPTION value=12>Austria<OPTION value=13>Azerbaijan<OPTION value=14>Bahamas<OPTION value=15>Bahrain<OPTION value=16>Bangladesh<OPTION value=17>Barbados<OPTION value=18>Belarus<OPTION value=19>Belgium<OPTION value=20>Belize<OPTION value=21>Benin<OPTION value=22>Bermuda<OPTION value=23>Bhutan<OPTION value=24>Bolivia<OPTION value=25>Bosnia-Hercegovina<OPTION value=26>Botswana<OPTION value=27>Brazil<OPTION value=28>Brunei<OPTION value=29>Bulgaria<OPTION value=30>Burkina Faso<OPTION value=31>Burundi<OPTION value=33>Cambodia<OPTION value=32>Cameroun<OPTION value=34>Canada<OPTION value=35>Canary Islands<OPTION value=37>Central African Republic<OPTION value=185>Chad<OPTION value=38>Chagos Islands<OPTION value=39>Chile<OPTION value=40>China<OPTION value=41>Colombia<OPTION value=42>Comoros<OPTION value=44>Costa Rica<OPTION value=93>Cote d&apos;Ivoire<OPTION value=45>Counsil of the Baltic Sea State<OPTION value=46>Croatia<OPTION value=47>Cuba<OPTION value=48>Cyprus<OPTION value=49>Czech Republic<OPTION value=138>DPR of Korea<OPTION value=208>Democratic Republic of Congo<OPTION value=50>Denmark<OPTION value=52>Dominica<OPTION value=53>Dominican Republic<OPTION value=218>East Timor<OPTION value=57>Ecuador<OPTION value=54>Egypt<OPTION value=56>El Salvador<OPTION value=58>Equatorial Guinea<OPTION value=59>Eritrea<OPTION value=60>Estonia<OPTION value=61>Ethiopia<OPTION value=62>Faroe Islands<OPTION value=63>Fiji<OPTION value=64>Finland<OPTION value=65>France<OPTION value=66>French Guyana<OPTION value=67>Gabon<OPTION value=68>Gambia<OPTION value=69>Gaza & Jericho<OPTION value=70>Georgia<OPTION value=71>Germany<OPTION value=72>Ghana<OPTION value=73>Gibraltar<OPTION value=74>Greece<OPTION value=75>Greenland<OPTION value=76>Grenada<OPTION value=77>Guadeloupe<OPTION value=78>Guatemala<OPTION value=79>Guinea<OPTION value=80>Guinea-Bissau<OPTION value=81>Guyana<OPTION value=82>Haiti<OPTION value=83>Honduras<OPTION value=84>Hongkong<OPTION value=85>Hungary<OPTION value=86>Iceland<OPTION value=87>India<OPTION value=88>Indonesia<OPTION value=89>Iran<OPTION value=90>Iraq<OPTION value=55>Ireland<OPTION value=91>Israel<OPTION value=92>Italy<OPTION value=94>Jamaica<OPTION value=95>Japan<OPTION value=96>Jordan<OPTION value=97>Kazakhstan<OPTION value=98>Kenya<OPTION value=219>Kiribati<OPTION value=99>Kuwait<OPTION value=100>Kyrgyzstan<OPTION value=101>Laos<OPTION value=102>Latvia<OPTION value=103>Lebanon<OPTION value=104>Lesotho<OPTION value=105>Liberia<OPTION value=106>Libya<OPTION value=107>Lichtenstein<OPTION value=108>Lithuania<OPTION value=214>Luxembourg<OPTION value=109>Macao<OPTION value=110>Macedonia<OPTION value=111>Madagascar<OPTION value=112>Malawi<OPTION value=113>Malaysia<OPTION value=114>Maldives<OPTION value=115>Mali<OPTION value=116>Malta<OPTION value=117>Marshall Islands<OPTION value=118>Martinique<OPTION value=119>Mauritania<OPTION value=120>Mauritius<OPTION value=121>Mexico<OPTION value=122>Micronesia<OPTION value=123>Moldova<OPTION value=216>Monaco<OPTION value=124>Mongolia<OPTION value=215>Montserrat<OPTION value=125>Morocco<OPTION value=126>Mozambique<OPTION value=127>Namibia<OPTION value=128>Nauro<OPTION value=129>Nepal<OPTION value=130>Netherland Antilles<OPTION value=131>Netherlands<OPTION value=132>New Caledonia<OPTION value=133>New Zealand<OPTION value=134>New Zealand Oceania<OPTION value=135>Nicaragua<OPTION value=136>Niger<OPTION value=137>Nigeria<OPTION value=139>Norway<OPTION value=140>Oman<OPTION value=141>Pakistan<OPTION value=221>Palau<OPTION value=217>Palestine<OPTION value=142>Panama<OPTION value=143>Papua New Guinea<OPTION value=144>Paraguay<OPTION value=43>Peoples Republic of Congo<OPTION value=145>Peru<OPTION value=146>Philippines<OPTION value=147>Poland<OPTION value=148>Portugal<OPTION value=149>Puerto Rico<OPTION value=150>Qatar<OPTION value=36>Republic of Cape Verde<OPTION value=51>Republic of Djibouti<OPTION value=169>Republic of Korea<OPTION value=156>Republic of Montenegro<OPTION value=159>Republic of Serbia<OPTION value=151>Reunion<OPTION value=152>Romania<OPTION value=153>Russia<OPTION value=154>Rwanda<OPTION value=211>Saint Kitts & Newis<OPTION value=155>Samoa<OPTION value=220>San Marino<OPTION value=165>Sao Tome & Principe<OPTION value=157>Saudi Arabia<OPTION value=158>Senegal<OPTION value=160>Seychelles<OPTION value=161>Sierra Leone<OPTION value=162>Singapore<OPTION value=163>Slovak Republic<OPTION value=164>Slovenia<OPTION value=166>Solomon Islands<OPTION value=167>Somalia<OPTION value=168>South Africa<OPTION value=170>Spain<OPTION value=171>Sri Lanka<OPTION value=172>St. Helena<OPTION value=173>St. Lucia<OPTION value=174>St. Vincent<OPTION value=175>Sudan<OPTION value=176>Suriname<OPTION value=177>Svalbard<OPTION value=178>Swaziland<OPTION value=179>Sweden<OPTION value=180>Switzerland<OPTION value=181>Syria<OPTION value=183>Taiwan<OPTION value=182>Tajikistan<OPTION value=184>Tanzania<OPTION value=186>Thailand<OPTION value=187>Togo<OPTION value=188>Tonga<OPTION value=189>Trinidad & Tobago<OPTION value=190>Tunisia<OPTION value=191>Turcks & Caicos Islands<OPTION value=192>Turkey<OPTION value=193>Turkmenistan<OPTION value=194>Tuvalu<OPTION value=201>USA<OPTION value=195>Uganda<OPTION value=197>Ukraine<OPTION value=198>Union of Myanmar<OPTION value=199>United Arab Emirates<OPTION value=196>United Kingdom<OPTION value=200>Uruguay<OPTION value=202>Uzbekistan<OPTION value=203>Vanuatu<OPTION value=204>Vatican State<OPTION value=205>Venezuela<OPTION value=206>Vietnam<OPTION value=213>Wallis & Futuna Islands<OPTION value=207>Yemen<OPTION value=209>Zambia<OPTION value=210>Zimbabwe</SELECT>\
</div>\
<div class=shopMessage>Choose currency you want the price to be calculated in:</div>\
<div class=shopMessage>\
<SELECT NAME='currencyCode' id='currencyCode' onBlur='setBlur(this);'><OPTION VALUE=''>Please choose your currency<OPTION VALUE=2>EUR<OPTION VALUE=0>DKK<OPTION VALUE=1>USD<OPTION VALUE=8>CAD<OPTION VALUE=3>GBP<OPTION VALUE=9>JPY<OPTION VALUE=6>CHF<OPTION VALUE=4>SEK<OPTION VALUE=5>NOK<OPTION VALUE=11>AUD</SELECT>\
</div>\
<div class=shopMessage><input type=button class=subGreen style='width:200px;' onClick='currency.ctrlForm(this);' value='Set my preferences' /></div>\
</div><div class=boxFooterMiddle>&nbsp;</div></FORM>";
    //this.HTML = this.HTML;
  },
  ctrlForm:function( obj ){
  var formObj = obj.form;
    setBlur(formObj.countryCode);
    setBlur(formObj.currencyCode);
    if( $("#countryCode :selected").val() != '' && $("#currencyCode :selected").val() != '' ){
      setCookie( 'cookiesVar_currencyCode', $("#currencyCode :selected").val() , 365, '/', SERVER_NAME , 0 );
      setCookie( 'cookiesVar_currencyName', $("#currencyCode :selected").text()  , 365, '/', SERVER_NAME , 0 );
      setCookie( 'cookiesVar_countryCode' , $("#countryCode :selected").val()  , 365, '/', SERVER_NAME , 0 );
      setCookie( 'cookiesVar_countryName' , $("#countryCode :selected").text    , 365, '/', SERVER_NAME , 0 );

      window.location.href = ( this.linkHREF.indexOf('?') != -1 ? ( this.linkHREF + "&" ) : ( this.linkHREF + "?" ) ) + "currencyCode=" + $("#currencyCode :selected").val() + "&currencyName=" + $("#currencyCode :selected").text() + "&countryCode=" + $("#countryCode :selected").val() + "&countryName=" + $("#countryCode :selected").text().replace('&','%26').replace(/\s+/g,'+') + "&actionid=SCCC" ;

      obj.disabled = true;
      obj.value = "Please wait...";
    }else if( $("#countryCode :selected").val() == '' ){
      alert( 'Please choose the country of your residence.' );
      setFocus(formObj.countryCode);
    }else if( $("#currencyCode :selected").val() == '' ){
      alert( 'Please choose your prefered currency.' );
      setFocus(formObj.currencyCode);
    }
  },
  check:function(linkObj){
    if( ( empty(getCookie("cookiesVar_currencyName")) && !sessionObj.loggedOn ) || isUndefined(linkObj) ){
      this.showForm(linkObj);
      return false;
    }
  },
  showForm:function(linkObj){
    if( isUndefined(linkObj)) linkObj = {href:window.location.href.replace(/\??&?currencyCode.*SCCC/,'')};
    this.form();
    $('#currency').css({top:( $(document).scrollTop() + 112 )+"px"}).show().html(this.HTML).enfloat();
    $('.subGreen').addClass("corner");
    this.linkHREF = linkObj.href;
  }
};
/* Currency ends */

/* Royal Club Starts */
/*
Royal Club API
______________________________*/


var rcSettings = {
  conversionRate:{value:0},
  creditCardBonus:{value:0},
  webOrderBonus:{value:0}
};

function royal_club_settings(){

if( !sessionObj.loggedOn ) return;

$.ajax({
type:"GET",
url:"/royal_club/royal_club_settings.ms",
data:"",
success:function(msg){
try{
eval(strCleanup(msg));
rcSettings.conversionRate.value=resultObj.result.rows[0].value.value;
rcSettings.creditCardBonus.value=resultObj.result.rows[1].value.value;
rcSettings.webOrderBonus.value=resultObj.result.rows[2].value.value;
}catch(e){}
}

});
}//--

function royal_club_item_points(itemnumber){

  if( !sessionObj.loggedOn ) return false;

  $.ajax({
    type:"POST",
    url:"/royal_club/royal_club_item_points.ms",
    data:"itemnumber="+itemnumber,
    success:function(msg){
      eval(strCleanup(msg));
      if( !resultObj || !resultObj.result.rows.length ) return;
      var pointsEarned = Math.floor( (resultObj.result.rows[0].itemgroup_earned_dkk.value+resultObj.result.rows[0].itemtype_earned_dkk.value) * rcSettings.conversionRate.value );
      var pointsCorrespondInCurrencyTo = Math.round( ( (Math.floor(resultObj.result.rows[0].itemgroup_earned_dkk.value+resultObj.result.rows[0].itemtype_earned_dkk.value) * 100) / resultObj.result.rows[0].exchangerate.value ) * 100 ) / 100;
      var HTML ="\
      <div style='font-size:8pt;width:100%;margin:4px;font-weight:bold;'><span><a href='/Royal_Club/royal_club.ms#registration' title='Not a member - Click to apply for membership'>Royal Diplomatic Club</a></span></div>\
      <div style='font-size:8pt;width:100%;margin:4px;'>Points earned on purchase: " + pointsEarned + "</div>\
      <div style='font-size:8pt;width:100%;margin:4px;'>Points correspond to: " + pointsCorrespondInCurrencyTo + " " + sessionObj.currencyName + "</div>\
      ";
      $('.ITEM_ROYAL_CLUB').html(HTML);
    }
  });
}//--

function royal_club_calc(){

  if( !sessionObj.loggedOn ) return;

  $.ajax({
    type:"POST",
    url:'/royal_club/royal_club_calc.ms',
    data:'',
    success:function(msg){
      try{
        eval(strCleanup(msg));
        if(!objectSize(resultObj) || isUndefined( resultObj.ap ) )return;

        this.calc=function(val1,val2){
          val1=val1==null?0:val1;
          val2=val2==null?0:val2;
          return val1+val2;
        }

        var HTML="\
        <div style='font-size:8pt;width:100%;margin:4px;'>Points at your disposal: "+ parseInt(resultObj.ap.balance.value) +"</div>\
        <div style='font-size:8pt;width:100%;margin:4px;'>Points correspond to: "+ parseInt(resultObj.ap.points_in_sumcurrency.value) + "&nbsp;" + sessionObj.currencyName + "</div>\
        <div style='font-size:8pt;width:100%;margin:4px;'>Points pending on present order:"+this.calc(resultObj.itemgroup_earned_point.value,resultObj.itemtype_earned_point.value)+"</div>\
        <div style='font-size:8pt;width:100%;margin:4px;'>Pending points correspond to: "+sessionObj.currencyName+" "+this.calc(resultObj.itemgroup_earned_currency_ca.value,resultObj.itemtype_earned_currency_cas.value)+"</div>\
        <div style='font-size:8pt;width:100%;margin-top:4px;margin-left:4px;'><a class=rcs href='/Royal_Club/royal_club.ms#status'>Royal Diplomatic Club</a></div>\
        ";
        if( _laststep != 4 ){
          $('#royalClubMessagesText').html(HTML).css({background:'#000000',color:'#ffffff',width:'187px'}).show();
          $('#royalClubMessages').show().css({marginTop:'5px'}).addClass('corner');
          $('.rcs').css({color:'#FFA500',textDecoration:'underline',fontSize:'8pt'});
        }

        if( _laststep != -1 ) $('.rcs').toggle();

      }catch(e){}
    }
  });
}//--

/* Royal Club Ends */

/* Banner Manager starts */
var adminBannerManagerObj = {};

var bannerManagerObj ={
  BANNERS:"",
  HTML:"",
  INDEX:0,
  buildBannerUploadForm:function(){
    this.HTML = html2js("\
<form name=bannerManagerUploadForm id=bannerManagerUploadForm method=post enctype='multipart/form-data' action='" + MS_SELF + "'>\
  <input type=hidden value=add name=actionid>\
  <div class=bmHeading>Banner Manager</div>\
  <div class=bmTitle>Choose the banner ( 188px × 300px )</div>\
  <div class=bmField><input type='file' class='noBorder' name='filename' value='' size='50'></div>\
  <div class=bmTitle>Specify a link</div>\
  <div class=bmField><input type='text' class='noBorder' name='link' value='' size='50'></div>\
  <div class=bmTitle>Choose the Starting date</div>\
  <div class=bmField>" + this.getDate( 'startingdate' ) + "</div>\
  <div class=bmTitle>Choose the Ending date</div>\
  <div class=bmField>" + this.getDate( 'endingdate' ) + "</div>\
  <div class=bmTitle>Add description</div>\
  <div class=bmField><textarea cols=35 rows=1 name=description class=noBorder></textarea></div>\
  <div class=bmField><input type='submit' style='width:200px;' value='Save Banner Arrangement' class='sub'/></div>\
</form>\
  ");
  },

  buildBannerOverview:function(){
    this.HTML += "<div class=bmDescH>Description</div><div class=bmSDH>Starting Date</div><div class=bmEDH>Ending Date</div><div class=bmLINKH>Links to</div><div class=bmDELH>Delete</div>";
    var len = this.BANNERS.length;
    for( var key = 0 ; key < len ; key++ ){
      var link = this.BANNERS[key][2].replace(/&amp;/g,'&').replace(/&frasl;/g,'/');
      this.HTML += "<div class=bmDesc>" + this.BANNERS[key][5] + "</div>";
      this.HTML += "<div class=bmSD>"   + this.BANNERS[key][3] + "</div>";
      this.HTML += "<div class=bmED>"   + this.BANNERS[key][4] + "</div>";
      this.HTML += "<div class=bmLINK><a href='" + link + "'>Link</a></div>";
      this.HTML += "<div class=bmDEL><a href='" + MS_SELF + "?actionid=delete&amp;id=" + this.BANNERS[key][0] + "&amp;filename=" + this.BANNERS[key][1] + "' onClick='return bannerManagerObj.confirmDelete();'>Delete</a></div>";
    }
  },
  confirmDelete:function(){
    return confirm( "You are about to delete a banner. Are you sure?" );
  },
  getDate:function( name , select ){
    var t=new Date();
    var pastEpoch = t.getTime();
    if( isUndefined(select) ) select = t.getFullYear() + "." + this.doublize( t.getMonth() + 1 ) +  "." + this.doublize(t.getDate());
    var HTML = "<select class=sel name=" + name + ">";
    for( var i = -365 ; i < 365 ; i++ ){
      var d = new Date(pastEpoch + ( i * 86400000 ));
      var tmp = d.getFullYear() + "." + this.doublize( d.getMonth() + 1 ) +  "." + this.doublize(d.getDate());
      HTML += "<option value=" + tmp + "" + ( tmp == select ? ' selected' : '' ) + ">" + tmp;
    }
    HTML += "</select>";
    return HTML;
  },
  setContent:function(){$('#pageContent').html(this.HTML);},
  doublize:function(digit){return digit < 10 ? "0"+digit : digit;},
  confirmDelet:function(){return confirm('Do you wish to delete this Banner Arrangement?');},
  callBanners:function(){
    if( !in_array( SERVER_NAME ,["www.pj.dk","dev.pj.dk"] ) ) return;
    $.ajax({
      type: "POST",
      url: "/bannerManager/index.ms",
      data: "actionid=get",
      dataType: "json",
      success: function(msg){
        try{
          bannerManagerObj.BANNERS = msg;
          bannerManagerObj.initBanners();
        }catch(e){}
      },
      error: function (xhr, textStatus, errorThrown) {

      }
    });
  },
  adminBanners:function(){
    if( !in_array( SERVER_NAME ,["www.pj.dk","dev.pj.dk"] ) ) return;
    $.ajax({
      type: "POST",
      url: "/bannerManager/index.ms",
      data: "actionid=getAdmin",
      dataType: "json",
      success: function(msg){
        try{
          bannerManagerObj.BANNERS = msg;
          bannerManagerObj.buildBannerUploadForm();
          bannerManagerObj.buildBannerOverview();
          bannerManagerObj.setContent();
        }catch(e){}
      },
      error: function (xhr, textStatus, errorThrown) {

      }
    });
  },
  initBanners:function(){
    if( this.BANNERS.length > 0 ){
      this.loadAllBanners(0);
    }else{
      this.getReserveBanner();
    }
  },
  loadBanner:function(index){
    if( index == this.BANNERS.length ) index = 0;
    $('#topBanner').html( "<a title='" + this.BANNERS[index][5] + "' href='" + this.BANNERS[index][2].replace(/&amp;/g,'&').replace(/&frasl;/g,'/') + "'><img src='http://www.pj.dk/FILE_ROOT/BANNERS/" + this.BANNERS[index][1] + "' border=0></a>" );
    if( this.BANNERS.length > 1 ) setTimeout( 'bannerManagerObj.loadBanner(' + (++index) + ')' , 5000 );
  },
  loadAllBanners:function(index){
    if( index == this.BANNERS.length ) index = 0;
    for( var index in this.BANNERS )
    $('#topBanner').append( "<div class=bannerCell><a onClick='bannerManagerObj.adTracking(this.title,this.href); return false;' title='" + this.BANNERS[index][5].replace(/&frasl;/g,' ') + "' href='" + this.BANNERS[index][2].replace(/&amp;/g,'&').replace(/&frasl;/g,'/') + "'><img src='http://www.pj.dk/FILE_ROOT/BANNERS/" + this.BANNERS[index][1] + "' border=0></a></div>" );
    //if( this.BANNERS.length > 1 ) setTimeout( 'bannerManagerObj.loadBanner(' + (++index) + ')' , 5000 );
    $('.bannerCell').css({marginBottom:'5px'})
  },
  getReserveBanner:function(){
    $('#topBanner').html("<img src='/FILE_ROOT/BANNERS/reserveBanner.jpg' border=0>");
  },
  adTracking:function(title,href){
    //_gat._getTrackerByName()._trackEvent(title, title);
    pageTracker._trackPageview(title);
    //pageTracker._trackEvent(title,title);
    clickTrackingObj.report(title);
    setTimeout('document.location = "' + href + '"', 300)
  }
};

/* Banner Manager ends */


/* Top Banner Manager starts */
var adminBannerManagerObj = {};

var topBannerManagerObj ={
  BANNERS:"",
  HTML:"",
  INDEX:0,
  buildBannerUploadForm:function(){
    this.HTML = html2js("\
<form name=topBannerManagerUploadForm id=topBannerManagerUploadForm method=post enctype='multipart/form-data' action='" + MS_SELF + "'>\
  <input type=hidden value=add name=actionid>\
  <div class=bmHeading>Top Banner Manager</div>\
  <div class=bmTitle>Choose the banner (720 x 200)</div>\
  <div class=bmField><input type='file' class='noBorder' name='filename' value='' size='50'></div>\
  <div class=bmTitle>Specify URL</div>\
  <div class=bmField><input type='text' class='noBorder' name='q' value='' size='100'></div>\
  <div class=bmTitle>Specify priority</div>\
  <div class=bmField><input type='text' class='noBorder' name='priority' value='1' size='2'></div>\
  <div class=bmTitle>Specify target</div>\
  <div class=bmField><input type='text' class='noBorder' name='target' value='_self' size='10'></div>\
  <div class=bmTitle>Choose the Starting date</div>\
  <div class=bmField>" + this.getDate( 'startingdate' ) + "</div>\
  <div class=bmTitle>Choose the Ending date</div>\
  <div class=bmField>" + this.getDate( 'endingdate' ) + "</div>\
  <div class=bmTitle>Add description</div>\
  <div class=bmField><textarea cols=35 rows=1 name=description class=noBorder></textarea></div>\
  <div class=bmField><input type='submit' style='width:260px;' value='Save Top Banner Arrangement' class='sub corner'/></div>\
</form>\
  ");
  },

  buildBannerOverview:function(){
    this.HTML += "<div class=bmDescH>Description</div><div class=bmSDH>Starting Date</div><div class=bmEDH>Ending Date</div><div class=bmLINKH>URL</div><div class=bmDELH>Delete</div>";
    var len = this.BANNERS.length;
    for( var key = 0 ; key < len ; key++ ){
      //var link = "/shop/search.ms?q=" + urlencode(this.BANNERS[key][2]);//.replace(/&amp;/g,'&').replace(/&frasl;/g,'/');
      this.HTML += "<div class=bmDesc>" + this.BANNERS[key][5] + "</div>";
      this.HTML += "<div class=bmSD>"   + this.BANNERS[key][3] + "</div>";
      this.HTML += "<div class=bmED>"   + this.BANNERS[key][4] + "</div>";
      this.HTML += "<div class=bmLINK><a href='" + this.BANNERS[key][2].replace(/&frasl;/g,'/') + "'>Link</a></div>";
      this.HTML += "<div class=bmDEL><a href='" + MS_SELF + "?actionid=delete&amp;id=" + this.BANNERS[key][0] + "&amp;filename=" + this.BANNERS[key][1] + "' onClick='return topBannerManagerObj.confirmDelete();'>Delete</a></div>";
    }
  },
  confirmDelete:function(){
    return confirm( "You are about to delete a banner. Are you sure?" );
  },
  getDate:function( name , select ){
    var t=new Date();
    var pastEpoch = t.getTime();
    if( isUndefined(select) ) select = t.getFullYear() + "." + this.doublize( t.getMonth() + 1 ) +  "." + this.doublize(t.getDate());
    var HTML = "<select class=sel name=" + name + ">";
    for( var i = -365 ; i < 365 ; i++ ){
      var d = new Date(pastEpoch + ( i * 86400000 ));
      var tmp = d.getFullYear() + "." + this.doublize( d.getMonth() + 1 ) +  "." + this.doublize(d.getDate());
      HTML += "<option value=" + tmp + "" + ( tmp == select ? ' selected' : '' ) + ">" + tmp;
    }
    HTML += "</select>";
    return HTML;
  },
  setContent:function(){$('#pageContent').html(this.HTML);},
  doublize:function(digit){return digit < 10 ? "0"+digit : digit;},
  confirmDelet:function(){return confirm('Do you wish to delete this Banner Arrangement?');},
  callBanners:function(){
    if( !in_array( SERVER_NAME ,["www.pj.dk","dev.pj.dk"] ) ) return;
    $.ajax({
      type: "POST",
      url: "/topBannerManager/index.ms",
      data: "actionid=get",
      dataType: "json",
      success: function(msg){
        try{
          topBannerManagerObj.BANNERS = msg;
          topBannerManagerObj.initBanners();
        }catch(e){}
      },
      error: function (xhr, textStatus, errorThrown) {

      }
    });
  },
  adminBanners:function(){
    if( !in_array( SERVER_NAME ,["www.pj.dk","dev.pj.dk"] ) ) return;
    $.ajax({
      type: "POST",
      url: "/topBannerManager/index.ms",
      data: "actionid=getAdmin",
      dataType: "json",
      success: function(msg){
        try{
          topBannerManagerObj.BANNERS = msg;
          topBannerManagerObj.buildBannerUploadForm();
          topBannerManagerObj.buildBannerOverview();
          topBannerManagerObj.setContent();
        }catch(e){}
      },
      error: function (xhr, textStatus, errorThrown) {

      }
    });
  },
  initBanners:function(){
    if( this.BANNERS.length > 0 ){
      //this.loadAllBanners(0);
    }else{
      //this.getReserveBanner();
    }
  },
  loadBanner:function(index){
    if( index == this.BANNERS.length ) index = 0;
    $('#topBanner').html( "<a title='" + this.BANNERS[index][5] + "' href='" + this.BANNERS[index][2].replace(/&amp;/g,'&').replace(/&frasl;/g,'/') + "'><img src='http://www.pj.dk/FILE_ROOT/BANNERS/" + this.BANNERS[index][1] + "' border=0></a>" );
    if( this.BANNERS.length > 1 ) setTimeout( 'topBannerManagerObj.loadBanner(' + (++index) + ')' , 5000 );
  },
  loadAllBanners:function(index){
    if( index == this.BANNERS.length ) index = 0;
    for( var index in this.BANNERS )
    $('#topBanner').append( "<div class=bannerCell><a onClick='topBannerManagerObj.adTracking(this.title,this.href); return false;' title='" + this.BANNERS[index][5].replace(/&frasl;/g,' ') + "' href='" + this.BANNERS[index][2].replace(/&amp;/g,'&').replace(/&frasl;/g,'/') + "'><img src='http://www.pj.dk/FILE_ROOT/BANNERS/" + this.BANNERS[index][1] + "' border=0></a></div>" );
    //if( this.BANNERS.length > 1 ) setTimeout( 'topBannerManagerObj.loadBanner(' + (++index) + ')' , 5000 );
    $('.bannerCell').css({marginBottom:'5px'})
  },
  getReserveBanner:function(){
    $('#topBanner').html("<img src='/FILE_ROOT/BANNERS/reserveBanner.jpg' border=0>");
  },
  adTracking:function(title,href){
    //_gat._getTrackerByName()._trackEvent(title, title);
    pageTracker._trackPageview(title);
    //pageTracker._trackEvent(title,title);
    clickTrackingObj.report(title);
    setTimeout('document.location = "' + href + '"', 300)
  }
};

/* TOP Banner Manager ends */



// Closing the quickSearch on mouse outside
var mouse_is_inside = false;
var basket_hover=false;
var _laststep = -1;
var searchObj;
var qsObj;
var fpObj;
var clickTrackingObj;
var errorReportingObj;

var isCtrl = false;

$(function(){

  errorReportingObj = new errorReporting();

  try{
    layout.setShoppingBasketSubtotal(sessionObj.subtotal);
  }catch(e){
    errorReportingObj.report( "layout.setShoppingBasketSubtotal(sessionObj.subtotal) " + sessionObj.debitorNo + " " + e.description + " " + navigator.userAgent );
  }
  initBasket();

  $("#loading").css("opacity","0.2");

  switch(true){
    case(document.location.href.indexOf('/step1.ms')!=-1):{
      _laststep=1;
      $('#Headline').css({width:'881px'});
      $('#contentWrapper').css({width:'920px'});
      $('#pageContent').css({width:'920px'});
      $('#deliveryDataForm').hide();
      $('input[type=text], select').css({width:'200px'}).attr({onblur:'setBlur(this)',onfocus:'setFocus(this)'}).addClass('noBorder');
      $('.rightcell').css({width:'90px'});
      getDestinations();
      // bind form using 'ajaxForm'
      $('#deliveryDataForm').ajaxForm({
        dataType : 'json',
        beforeSubmit: function($form) {
          var result = true;
          $(".noBorder:visible").each(function(){
            if ($(this).val()=='' || $(this).val()==null ){
              alert("The value of this field may not be blank thank you.");
              $(this).css({background:'Yellow'}).focus();
              result = false;
            }
          });
          if( result ) $(".noBorder").css({background:'#D4F7E3'});
          return result;
        },
        success:function(responseText, statusText, xhr, $form){
          if(responseText[0][0]){
            document.location.reload();
          }else{
            alert("Something is wrong. This message should not appear.");
          }
       }
       });

       $('#countrySelect').change(function(){
          getDestinations();
       });

    }break;
    case(document.location.href.indexOf('/step2.ms')!=-1):{
      _laststep=2;
      $('#Headline').css({width:'881px'});
      $('#contentWrapper').css({width:'920px'});
      $('#pageContent').css({width:'920px'});
      $('.price').css({textAlign:'right'});
    }break;
    case(document.location.href.indexOf('/step3.ms')!=-1):{
      _laststep=3;
      $('.desc').css({fontSize:'10pt',paddingTop:'15px'});
      $('#rightColomn').toggle();
      $('#Headline').css({width:'940px'});
      $('#contentWrapper').css({width:'1090px'});
      $('#pageContent').css({width:'1090px'});
      $('.cards .grid_4').css({height:'50px',lineHeight:'50px',fontSize:'10pt',marginBottom:'10px'});
      $('.cards .grid_11').not('omega').css({marginTop:'20px'});
      $('.container_12 .grid_11').not('.note').css({margin:'5px 0px 5px 0px',fontWeight:'bold',fontSize:'10pt',marginTop:'10px' });
      $('.grid_12').not('#Headline').not('.cards').css({height:'26px',marginTop:'5px',textAlign:'center'});
      $('.header').css({background:'#EEEFFF',textAlign:'left',paddingTop:'9px',fontWeight:'bold',paddingLeft:'5px',fontSize:'10pt'});
      $('.itemRow').css({height:'69px',lineHeight:'69px;',fontSize:'10pt'});
      $('.itemRow .grid_8').css({textAlign:'left',marginTop:'24px'});
      $('.itemRow .grid_1').not('.omega').css({marginTop:'24px'});
      $('.Grand').css({textAlign:'right',fontSize:'10pt'});
      $('.Gebyr').css({textAlign:'right',fontSize:'10pt'});
      $('.Total').css({textAlign:'right',fontSize:'10pt'});
      $('.basketContainerSwitchOn').css({float:'left',background:'#69737D',border:'1px solid #69737D',color:'#fff',width:'180px',cursor:'pointer'}).addClass('corner');
      $('.basketContainerSwitchOff').css({float:'left',display:'none',background:'#84BCF3',border:'1px solid #84BCF3',color:'#fff',width:'180px',cursor:'pointer'}).addClass('corner');
      $('.basketContainer').toggle();

      $('input[name=paymentOptions]').each(function(){$(this).parent().css({cursor:'pointer'}).bind('click',function(){ $(this).children('input').attr('checked','checked') }) });

      $(".itemRow:odd").addClass("white");
      $(".itemRow:even").addClass("alt");

    }break;

    case(document.location.href.indexOf('/stepRoyalClub.ms')!=-1):{
      _laststep=4;
      $('#Headline').css({width:'920px'});
      $('#contentWrapper').css({width:'1090px'});
      $('#pageContent').css({width:'1090px'});
      $('#asd').css({background:'black',padding:'10px'}).addClass('corner');
      $('.grid_11').css({color:'orange',background:'black',marginTop:'5px',fontSize:'10pt'});
    }break;

    case(document.location.href.indexOf('/trolley.ms')!=-1):{
      _laststep=0;
      $('#rightColomn').toggle();
      $('#Headline').css({width:'1083px'});
      $('#contentWrapper').css({width:'1090px'});
      $('#pageContent').css({width:'1090px'});
      setTableRowBackgroundColor("trolleyItems",['#FFFFFF','#EFF3F7']);
    }break;

    default:{
      searchObj = new search('searchObj');
      searchObj.init();

      qsObj = new search('qsObj');
      fpObj = new search('fpObj');

      $(window).scroll(function(){searchObj.scrollWatcher()});

      $('#q').keyup(function(event){qsObj.quickSearch(this.value,event);});

      $('#quickSearch').hover(function(){
         mouse_is_inside=true;
      }, function(){
         mouse_is_inside=false;
      });

      $(document.body).mouseup(function(){
        if(!mouse_is_inside) qsObj.closeqs();
      });

      $('#quickBasket').hover(function(){
        basket_hover=true;
        $(this).stopTime('qbCloseTimer');qsCloseTime=5;
      }, function(){
        basket_hover=false;
        $(this).everyTime( 1000, 'qbCloseTimer', function(){
          qsCloseTime--;
          if(qsCloseTime===0){$("#quickBasket").hide(500); }
         }, 6 );
      });

      $(document.body).mouseup(function(){ if(!basket_hover) $("#quickBasket").hide(); });
      bannerManagerObj.callBanners();
      topBannerManagerObj.callBanners();
    }

  }


  if( $('#QuickShopping > .ITEM_PLUS').length ){
    clickTrackingObj = new clickTracking();
    $('#QuickShopping > .ITEM_PLUS').bind( 'click' , function(){clickTrackingObj.report("QuickShopping");} );
  }


  if( _laststep != -1 ){
    $('#QuickShopping').toggle();
    $('#topBanner').toggle();
    $('#auxad').toggle();
    layout.toggleLeftColomn();
    layout.toggleBasket();
    layout.toggleBottomBanner();
    layout.hideCatalogues();
    layout.favoriteArr = [];
  }

  $('.sub').css({width:'180px'}).addClass('corner');
  $('.subYellow').css({width:'180px'}).addClass('corner');
  $('.subGreen').css({width:'180px'}).addClass('corner');

  if( document.domain == "www.pj.dk" || document.domain == "dev.pj.dk" ){
    royal_club_settings();
    royal_club_calc();
  }

  $(document).keydown(function(e){
     if(e.keyCode == 113){
       currency.showForm();
       return false;
     }
   });

  //var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  //ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  //var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);

});
