/*------------ Used in templates:  oppdater_firma, bli_kunde ----------*/
function check_company(){
    var contact     = document.company.elements['contact'].value;
    var companyname = document.company.elements['companyname'].value;
    var orgnu       = document.company.elements['orgnu'].value;
    var address     = document.company.elements['address'].value;
    var zipcode     = document.company.elements['zipcode'].value;
    var city        = document.company.elements['city'].value;
    //var telephone   = document.company.elements['telephone'].value;
    var email       = document.company.elements['from'].value;

    //-----Check for content-----
    if (!contact) {
      window.alert("Vennligst oppgi kontaktperson");
      return false;
    }
    else if (!companyname) {
      window.alert("Vennligst oppgi firmanavn");
      return false;
    }
    else if (!orgnu) {
      window.alert("Vennligst oppgi organisasjonsnummer");
      return false;
    }
    else if (!address) {
      window.alert("Vennligst oppgi adresse");
      return false;
    }
    else if (!zipcode) {
      window.alert("Vennligst oppgi postnummer");
      return false;
    }
    else if (!city) {
      window.alert("Vennligst oppgi poststed");
      return false;
    }
    else if (!email) {
      window.alert("Vennligst oppgi epostadresse");
      return false;
    }
    //else if (!telephone) {
    //  window.alert("Vennligst oppgi telefonnummer");
    //  return false;
    //}

    //-----Check for valid content-----
    if(!validate_zipcode_no(zipcode)){
      return false;
    }
    else if(!validate_email(email)){
      return false;
    }
    else if(!validate_telephone(telephone)){
      return false;
    }
    //-----Return true if everything is ok-----
    return true;
}


function check_order(){
/* ----------midlertidig deaktivert-------------
    var d_fname       = document.orders.elements['ORDERS.D_FNAME'].value;
    var d_lname       = document.orders.elements['ORDERS.D_LNAME'].value;
    var d_zipcode     = document.orders.elements['ORDERS.D_ZIPCODE'].value;
    var d_city        = document.orders.elements['ORDERS.D_CITY'].value;
    var d_email       = document.orders.elements['ORDERS.D_EMAIL'].value;
    var d_telephone   = document.orders.elements['ORDERS.D_TELEPHONE'].value;

    //-----Check for content-----
    if (!d_fname) {
      window.alert("Vennligst oppgi fornavn");
      return false;
    }
    else if (!d_lname) {
      window.alert("Vennligst oppgi etternavn");
      return false;
    }
    else if (!d_zipcode) {
      window.alert("Vennligst oppgi postnummer");
      return false;
    }
    else if (!d_city) {
      window.alert("Vennligst oppgi poststed");
      return false;
    }
    else if (!d_email) {
      window.alert("Vennligst oppgi epostadresse");
      return false;
    }
    else if (!d_telephone) {
      window.alert("Vennligst oppgi telefonnummer");
      return false;
    }

    //-----Check for valid content-----
    if(!validate_zipcode_no(d_zipcode)){
      return false;
    }
    else if(!validate_email(d_email)){
      return false;
    }
    else if(!validate_telephone(d_telephone)){
      return false;
    }
*/
    //-----Return true if everything is ok-----
    return true;
}


function validate_email(email_str){
  var email_filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

  if (!email_filter.test(email_str)){
    alert("Epostadressen er ikke gyldig: Eksempel pÃ?Æ?Ã?Â¥ riktig adresse er: fornavn.etternavn@firma.no");
    return false;
  }
  else {
    return true;
  }
}

function validate_zipcode_no(zipcode_str){
  var zipcode_filter = /^([\d]+)$/i;

  if (!zipcode_filter.test(zipcode_str)){
    alert("Postnummeret kan bare inneholde tall");
    return false;
  }
  else if(zipcode_str < 1 || zipcode_str > 9999){
    alert("Postnummeret mÃ?Æ?Ã?Â¥ vÃ?Æ?Ã?Â¦re et tall mellom 0001 og 9999");
    return false;
  }
  else {
    return true;
  }
}

function validate_telephone(telephone_str){
  var telephone_filter = /^([\d]+)$/i;

  if (!telephone_filter.test(telephone_str)){
    alert("Telefonnummeret kan bare inneholde tall");
    return false;
  }
  else if(telephone_str < 10000000 || telephone_str > 99999999){
    alert("Telefonnummeret er ugyldig");
    return false;
  }
  else {
    return true;
  }
}
/************ search on webshop ************/
var inputToggleVal = Class.create();
inputToggleVal.prototype = {
   initialize: function(elem, defaultString) {
   this.elem = elem;
   this.defaultString = defaultString;
},
   clearVal: function() {
     if(this.defaultString == this.elem.value){ this.elem.clear(); }
  },
   restoreVal: function() {
     if(this.elem.value.strip() == '') {  this.elem.value = this.defaultString }
   }
};

function toggleValueElement(){
  var input = $$("input.toggleVal");
  if(input) {
  input.each(function(obj){
      var txtbox = new inputToggleVal($(obj), $(obj).value);
      $(obj).observe('focus', function(){
           txtbox.clearVal();
      });
      $(obj).observe('blur', function(){ txtbox.restoreVal(); });
  });
  }
}
function searchBoxFocus(){
	/* $("search_txt").observe('click', function(){
		var val = this.value;
		this.value = this.value == "Skriv inn søketekst" ? '' : val;
	});
	$("search_txt").observe('blur', function(){
		var val = this.value;
		this.value = this.value != '' ? val : "Skriv inn søketekst" ;
	});*/
        if($("dynSearch")){
	$("dynSearch").observe('submit', function(event){
		var searchTxt = $('search_txt'); 
		if($('search_txt').getValue().strip() == '' || $('search_txt').getValue() == "Skriv inn søketekst" ) {
			alert("Skriv inn sÃ?Â¸ket tekst");
			searchTxt.clear();
			searchTxt.focus();
			Event.stop(event);
		}		
	});
        }
}
var searching; // set a global variable
var searchTimer = 0; // thier sets a delay for the firing of the search
var lastSearch; // last searched word, so we do not fire the same search twice
var preloader = '<p>Oppdaterer siden, vennligst vent</p><img id="search_preloader" src="/berga2/frontend/graphics/loadingAnimation.gif" alt="loading">';
var AjaxErrorMsg = "Tilkoblingen er feil. Kontroller tilkobling, eller kontakt oss for mer informasjon.";

function ajaxSearch(){

  if ( $('dynSearch') ) {
    Watch.watchForm( 'dynSearch', 
    function(el) {
      clearTimeout(searchTimer);
      searchTimer = setTimeout('doSearch()', 500);
    });
  }
}

function doSearch() {

  var searchEl = $("search_txt");
  var supplierEl = $("supplierCode");

  if(searching != null){ searching.transport.abort(); } 

  var searchTerm;
  var valid = searchEl.value == 'Skriv inn søketekst';
  if ( valid ) {
    searchTerm = '';
  } else {
    searchTerm = escape(searchEl.value);
  }
  var data = searchEl.name+'='+searchTerm;

  var supplierNu = supplierEl.value;
  if ( supplierNu ) {
    data += '&'+ supplierEl.name +'='+ escape(supplierNu);
  }

  var url = '/wsp/berga2/frontend.cgi?&func=frontend.show&template=product_listing_grouped&'+data;

  var div_ajax_table = '<div id="ajax_table">'+preloader+ '</div>';
  $('main-content').update(div_ajax_table);
  searching = new Ajax.Request(url, {
    method: 'GET',
    onSuccess: function(transport) { 
      if($('ajax_table')){
        $('ajax_table').hide();
      }
      showAjaxResult($("ajax_table"), transport.responseText); 
      pageTracker._trackPageview('/searchresult?search=' + searchTerm);
    },
    onError : function(){ showAjaxResult($("show-result"), AjaxErrorMsg, replace) }
  });

}

function showAjaxResult(elem, html, type){
    if(type=='replace'){ $(elem).replace(html); }else{ $(elem).innerHTML = html; } 
    var duration = html.length / 18000;

    new Effect.BlindDown(elem.id, { duration : duration });
}
/*************** Validate change password ************/
function validate_change_password(form){
	if(form.elements["password_new1"].value.length < 4){
			alert("Passordet mÃ?Æ?Ã?Â¥ bestÃ?Æ?Ã?Â¥ av minst 4 tegn!");
			return false;
	}

	if(form.elements["password_new1"].value!=form.elements["password_new2"].value){
		alert("Passordene du skrev samsvarer ikke!");
		return false;
	}
}
function validate_new_password(form){
	if(form.elements["PASSWORD"].value.length < 4){
			alert("Passordet mÃ?Æ?Ã?Â¥ bestÃ?Æ?Ã?Â¥ av minst 4 tegn!");
			return false;
	}

	if(form.elements["password_new1"].value!=form.elements["PASSWORD2"].value){
		alert("Passordene du skrev samsvarer ikke!");
		return false;
	}
}

function validate_change_password(form){

	if (!form.elements['password_current'].value){
	alert("NÃ?Æ?Ã?Â¥vÃ?Æ?Ã?Â¦rende passord kan ikke vÃ?Æ?Ã?Â¦re tomt. Vennligst fyll inn nÃ?Æ?Ã?Â¥vÃ?Æ?Ã?Â¦rende passord");
	return false;
	}
	if(form.elements['password_current'].value < 4 || form.elements["password_new1"].value.length < 4 ){
			alert("Passordet mÃ?Æ?Ã?Â¥ bestÃ?Æ?Ã?Â¥ av minst 4 tegn!");
			return false;
	}

	if(form.elements["password_new1"].value!=form.elements["password_new2"].value){
		alert("Passordene du skrev samsvarer ikke!");
		return false;
	}
}
function validate_new_password(form){
	if(form.elements["PASSWORD"].value.length < 4){
			alert("Passordet mÃ?Æ?Ã?Â¥ bestÃ?Æ?Ã?Â¥ av minst 4 tegn!");
			return false;
	}

	if(form.elements["PASSWORD"].value!=form.elements["PASSWORD2"].value){
		alert("Passordene du skrev samsvarer ikke!");
		return false;
	}
}
function addUserProductToOffer() {
  // Add user or freetext products to offer

  var button= $$(".add_new_line");   
  var limit = 20; 

  if(button) {

    $(button).each(function(btn) {

      $(btn).observe('click', function() { 

        var tr = $("total_price");
        var price = $$('input[name^="price"]');
        var qty = $$('input[name^="qty"]');
        var qtyNum = 1;
        var prodPrice = 0;
        var userOffer = $$("input[name^='user_offer']");

        if (userOffer.length < limit) {

          var uOffer;
          if ($(btn).id == 'add_new_line') {
            // Freetext product
            prodPrice = 0;
            uOffer = '<input type="text" id="freetext_product'+(qty.length + 1)+'" name="freetext_product'+(qty.length + 1)+'" class="txt-box bname mandatory freetext">';
            priceBox = '<input type="text" id="price'+(price.length + 1)+'" name="price'+(price.length + 1)+'" value="'+prodPrice+'" size="7" class="txt-box mandatory user_price">';

          } else {
            // Own product
            var prodPrice = $("user_product").options[$("user_product").selectedIndex].className;
            var txtVal = $("user_product").options[$("user_product").selectedIndex];
            uOffer = '<input type="text" class="txt-box bname disabled freetext" value="'+txtVal.innerHTML+'" disabled="disabled"><input type="hidden" id="user_offer'+
            (qty.length + 1)+'" name="user_offer'+(qty.length + 1)+'" value="'+txtVal.value+'">';
            priceBox = '<input readonly="readonly" type="text" id="price'+(price.length + 1)+'" name="price'+(price.length + 1)+'" value="'+prodPrice+'" size="7" class="txt-box disabled total_price price">';
          }

            
          var qtyBox = '<input type="text" id="qty_'+(qty.length + 1)+'" name="qty'+(qty.length + 1)+'" class="txt-box mandatory qty" value="'+qtyNum+'">';
          var markupBox = '<input type="text" id="markup'+(price.length + 1)+'" name="markup'+(price.length + 1)+'" class="txt-box" size="4" value="0,00">';

          var totalPrice = qtyNum * parseFloat(prodPrice.toString().replace(/,/,'.'));
          var newRow = '<tr><td>&nbsp;</td><td class="product-name">'+uOffer+'</td><td id="qty" class="product-qty">'+
          qtyBox+'</td><td></td><td class="user_price product-price">'+priceBox+'</td><td class="markup-line">' + markupBox + '</td><td class="total-price">'+
          totalPrice +'</td><td><a name="delete-offer" title="'+
          'Slette dette tilbudet'+'" class="delete">'+'Slette dette tilbudet'+'</a></td></tr>';

          new Insertion.Before(tr, newRow);
          $("count").value = parseInt($("count").getValue()) + 1;
          calculateMarkup();

          $('qty_'+(qty.length + 1)).observe( 'keyup', calculateMarkup );
          $('price'+(price.length + 1)).observe( 'keyup', calculateMarkup );
          $('markup'+(price.length + 1)).observe( 'keyup', calculateMarkup );

          deleteUserOffer();

        } else {

          alert("reach_adding_limit");
        }
      });
    });
  }
}

function calculateMarkup( e ) {

  var offerTotal = 0;
  var allLineMarkupElements = $$('input[name^="markup"]');
  if ( allLineMarkupElements ) {

    allLineMarkupElements.each( function(lineMarkupElement) { 

      var lineMarkupPercent = new numberFormat( lineMarkupElement.value );

      if ( lineMarkupPercent.validate() ) {

        Event.stop(e);
        alert('Nummer bare');
        lineMarkupElement.clear();
        lineMarkupElement.focus(); 
      }

      var lineId = lineMarkupElement.id.substring( 6 );

      var price = new numberFormat($('price' + lineId).value);
      var qtyEl = $('qty_' + lineId);
      var qty = new numberFormat( qtyEl.value );
      if ( qty.validate() ) {
        Event.stop(e);
        alert('Nummer bare');
        qtyEl.clear();
        qtyEl.focus(); 
      }

      var totPrice = parseFloat(price.ENG()) * parseFloat(qty.ENG());
      var lineMarkup = totPrice * parseFloat( lineMarkupPercent.ENG() ) / 100;

      var grossPrice = totPrice + lineMarkup;
      var totLastPrice = new numberFormat( grossPrice );
      totLastPrice.decimalize(2); 
      var tot = $(lineMarkupElement).up('td').next('td');
      tot.update(totLastPrice.NOR());

      offerTotal += grossPrice;
    });
  }

  offerTotal = new numberFormat( offerTotal );
  offerTotal.decimalize(2);
  $('total-price-markup').update( offerTotal.NOR() );

}

function observeMarkup (){

  var lineMarkup = $$('input[name^="markup"]');
  if ( lineMarkup ) {
  
    lineMarkup.each(function(obj){ 
  
      obj.observe('keyup', calculateMarkup );
    });
  }

  var markupBox = $('order_markup');
  var markupButton = $('distribute_markup');
  if ( markupBox && markupButton ) {
    markupButton.observe( 'click', function(e) { distributeMarkup( e, markupBox ) } );
  }
}

function observeQuantity () {

  var qtyBoxes = $$('input[name^="qty"]');
  qtyBoxes.each( function ( thisBox ) {
      thisBox.observe('keyup', calculateMarkup );
      });
}

function distributeMarkup ( e, markupBox ) {

  var markup = new numberFormat( markupBox.getValue() );

  if ( markup.validate() ) {

    Event.stop(e);
    alert('Nummer bare');
    markupBox.clear();
    markupBox.focus();
    return;
 }

  var lineMarkups = $$('input[name^="markup"]');
  markup.decimalize(2);
  lineMarkups.each( function( thisLineMarkup ) { thisLineMarkup.value = markup.NOR() } );

  calculateMarkup();
  e.stop();
}

function deleteUserOffer(){

  var btn = $$('a[name="delete-offer"]');
  
  if(btn) {
  
    btn.each(function(obj){
  
      obj.observe('click', function(){
        if($(this).up('tr')){ $(this).up('tr').remove(); }
        calculateMarkup();
      });
    });
  }
}

function getOfferForm() {
  if ( $$('.updateOffer') ){

    $$('.updateOffer').each( function (obj) {
      obj.observe('submit', function(e) {

        // Copy most input elements from the offer form
        // Really we should do all in one single form
        var f = Event.element(e);
        var byId = new Array('bname', 'OFFER_TEXT', 'OFFER_ADDRESS', 'OFFER_TEXT_TOP', 'order_markup', 'basket_id');
        for ( var i = 0; i < byId.length; ++i ) {
          var id = byId[i];
          var element = $(id);
          if ( element ) {
            f.insert({'bottom' : '<input type="hidden" name="'+ element.name +'" value="'+ element.getValue() +'">'});
          }
        }

        var byCss = new Array( '#save-offer input[name^="markup"]', '#save-offer input[name^="basketline_id"]',
        '#save-offer input[name^="count"]', '#save-offer input[id^="user_offer"]', '#save-offer input[id^="freetext_product"]',
        '#save-offer input[name^="qty"]', '#save-offer input[name^="price"]');
        for ( var i = 0; i < byCss.length; ++i ) {
          var selector = byCss[i];
          var elements = $$(selector);
          elements.each(function(o){ 
            f.insert({'bottom' : '<input type="hidden" name="'+ o.name +'" value="'+ o.getValue() +'">'});
          });
        }
      });
    });
  }
}

function deleteConfirmation(){
       var elem = $$(".delete");
       if(elem){
           elem.each(function(obj){
                obj.observe('click', function(e){
                   if(!confirm("Vil du slette?")){ Event.stop(e); }
                });
           });
       }
}
function removeUserConfirmation(){
       var elem = $$(".user_remove");
       if(elem){
           elem.each(function(obj){
                obj.observe('click', function(e){
                   if(!confirm("Ønsker du å fjerne denne brukeren?")){ Event.stop(e); }
                });
           });
       }
}
function unlinkConfirmation(){
       var elem = $$(".unlink");
       if(elem){
           elem.each(function(obj){
                obj.observe('click', function(e){
                   if(!confirm("Unlink confrim text")){ Event.stop(e); }
                });
           });
       }
}

function submitCheck() {
  var f = $$("form");

  if ( f ) {

    f.each(function(obj){

      if ( obj.id != 'login' || obj.id != 'dynSearch' ) {

        $(obj).observe('submit', function(e){
          if ( !mandatoryCheck(this) ) {
            Event.stop(e);
          }
        });
      }
    });
  }
}
function mandatoryCheck(f) {

  var elem = f.elements;
  for(var i=0; i<elem.length; i++){

      if ( (elem[i].type=='text' || elem[i].tagName.toLowerCase() == 'textarea')
      && elem[i].value.strip()=='' && elem[i].hasClassName('mandatory') ) {

        var labelTxt = ''; 
        if ( $(elem[i]).previous('label') ) {
          labelTxt = $(elem[i]).previous("label").innerHTML.stripTags();
        }
        alert("Vennligst fyll inn de obligatoriske feltene.\n"+labelTxt);elem[i].focus();
        return false;
      }
    }
    return true;
  }

function validateOfferName(){
var verifyingName = "Bekrefter navnet...";
      var b = $('bname');
      if(b && b.up('form').id == 'save-offer' || b && b.up('form').id == 'offer-save'){   
         b.observe('keyup', function(){ 
           if(this.value.strip() == ''){ 
              $("submit").removeAttribute("disabled");$("submit").show();
           }else{
           if(searching != null){ searching.transport.abort(); if($("search_preloader")){ $("search_preloader").remove();} }
           $("submit").disabled="disabled"; $("submit").hide(); if(!$("preloader")){ new Insertion.After('submit', '<span id="preloader">'+verifyingName +'</span>')}else{ $('preloader').removeClassName('warning');$("preloader").innerHTML= verifyingName } 
            var url = '/wsp/berga2/frontend.cgi?func=offer.checkname&bname='+escape(this.value.strip());
            if(this.value.strip() != ''){
            searching = new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport) { if(transport.responseText.stripTags()==1){ $("preloader").addClassName('warning'); $("preloader").innerHTML ='Navnet er opptatt. Vennligst velg et annet.'; }else{ $("preloader").remove(); $('submit').removeAttribute('disabled');$('submit').show();} },
            onError : function(){   new Insertion.After('submit', '<span class="warning"">'+AjaxErrorMsg+'</span>') }
           });
          }
        }
       
         });
      }
}
/******************* END validate password *****************/

/******************** own product *********************/
function confirmDelete() {
   if ($$('form[name="form_delete_product"]')) {
   if ($$('form[name="form_delete_product"]')) {
     $$('form[name="form_delete_product"]').each(function(f){
      	$(f).observe('submit', function(e){
      	  if(!confirm("Vil du slette?")){
      	  	Event.stop(e);
      	  }
      	});  
     });
   }
   }
 }
/******************** END own product *********************/

function openPopupCal(){
     var imgCalendar_Click = function(e, input) {
        showCalendar("calendar", input, "calendar-container", Event.element(e));
        
      };
   var picker = $$("input.date-picker");
     picker.each(function(obj){
     var input = 'delivery_date'+(obj.id.split("_")[1]); 
     obj.observe("click", imgCalendar_Click.bindAsEventListener(this, input));
   });
   var dateBox = $$("input[id^='delivery_date']");
   if(dateBox){
        dateBox.each(function(obj){
            obj.observe('keypress', function(e){ Event.stop(e); });
        });
   }
}
/* This does not show the addresses
function changeDeliveryAddress(){
   var addressId = $("compaddress_id");
   if(addressId){
      addressId.observe('change', function(e){
          var data = $(this).getValue();
          if(data == ''){

            // Pick up from lager
            $('ORDERS.WAREHOUSE_ID').disabled = 'disabled';

          } else {

            $('ORDERS.WAREHOUSE_ID').disabled = '';
          }
      });
   }      
}
*/

function changeDeliveryAddress() {
  var addressId = $("compaddress_id");

  if ( addressId ) {

    addressId.observe( 'change', function(e) { 
      var data = $(this).getValue();

      if ( data != '' ) {

        if ( data == 'standard' || data == 'hentes' ) {

          $("ORDERS.D_ADDRESS").value = data;
          $("ORDERS.D_ZIPCODE").value = '';
          $("ORDERS.D_CITY").value = '';
        
        } else {

          var url = '/wsp/berga2/frontend.cgi?func=frontend.show&template=useraddress&compaddress_id='+data;
          if ( searching != null ) {
            searching.transport.abort();
          }
          searching = new Ajax.Request(url, {
            method : 'get',
            onCreate : function() {
              if (!$("preloader")) {
                new Insertion.After("compaddress_id", '&nbsp;<span id="preloader">&nbsp;</span>' ) 
              }
            },
            onSuccess : function(t){
              var node = t.responseText.stripTags().evalJSON();
              $("ORDERS.D_ADDRESS").value=node.D_ADDRESS;
              $("ORDERS.D_ADDRESS_2").value=node.D_ADDRESS_2;
              $("ORDERS.D_ZIPCODE").value = node.D_ZIPCODE;
              $("ORDERS.D_CITY").value=node.D_CITY;
              $("preloader").remove();
            },
            onError : function(){   new Insertion.After('compaddress_id', '<span class="warning">'+AjaxErrorMsg+'</span>') }
          });
        }
      }
    });
  }      
}

function companyCheck() {
   var f = $("login");
   var paramArray = window.location.search.toQueryParams(); 
   if(f) {  
     f.observe('submit', function(e) { 
       var huskSavedUser = '';
       if($('chk_save_user').checked){
         huskSavedUser = 'on'; 
       }
       else{
         huskSavedUser = 'off'; 
       }
       Event.stop(e);
       new Ajax.Request('/wsp/berga2/frontend.cgi?', { 
         parameters:{password: $F('password'), username: $F('username'), func: 'user.company_no',  login: 'yes', logincode: $F('logincode'), debug: 'off', login_template: 'login', save_user: huskSavedUser},
         onComplete: function(response){ 
           if (parseInt(response.responseText) >= 1) { 
             var GreyboxHead = "";
             if (parseInt(response.responseText) > 1) {
               GreyboxHead = "Hvilke firma / kunde vil du bruke etter pålogging?";
             } else {
               GreyboxHead = "Velkommen til BA";
             }
             var parseHref = '/wsp/berga2/frontend.cgi?func=frontend.show&template=multiple_companies_alert&shop_type=&save_user=' + huskSavedUser;       
             var compAlertUrl = parseHref;
             js_dialog('mybox',{title:GreyboxHead,width:500,height:300, ajax_url: compAlertUrl, theme:'blue'});
           } else { 
             location.href= '/wsp/berga2/frontend.cgi?func=frontend.show&template=login_fail_info';
           }

         } 
       });
     });
   }else if(paramArray.username){
 
     var ociUser      = paramArray.username;
     var ociPassword  = paramArray.password; 
     var ociLoginCode = paramArray.logincode;
     var ociShopType  = paramArray.shop_type;
     new Ajax.Request('/wsp/berga2/frontend.cgi?', { 
       parameters:{password: ociPassword, username: ociUser, func: 'user.company_no',  login: 'yes', logincode: ociLoginCode, debug: 'off', login_template: 'login'},
       onComplete: function(response){ 
         if (parseInt(response.responseText) >= 1) { 
           var GreyboxHead = "";
           if (parseInt(response.responseText) > 1) {
             GreyboxHead = "Hvilke firma / kunde vil du bruke etter pålogging?";
           } else {
             GreyboxHead = "Velkommen til BA";
           }
           var parseHref = '/wsp/berga2/frontend.cgi?func=frontend.show&template=multiple_companies_alert&save_user=off&shop_type=' + ociShopType;       
           var compAlertUrl = parseHref;
           js_dialog('mybox',{title:GreyboxHead,width:500,height:300, ajax_url: compAlertUrl, theme:'blue'});
         }
         else { 
           location.href= '/wsp/berga2/frontend.cgi?func=frontend.show&template=login_fail_info';
         }

       } 
     });
   }
}
/************ Div hover ******************/
function divHover(){
   var div = $$(".hover");
   if(div){

       div.each(function(t){
          t.observe('mouseover',function(e){
            if(!this.hasClassName("highlight")){ this.addClassName("highlight"); }  

          });
          t.observe('mouseout',function(e){
            if(this.hasClassName("highlight")){ this.removeClassName("highlight"); }
          })
       });
   }

}
/*****************************************/
function openNewWindow() {
    $$('a[rel="external"]').each(function(link){
      if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
           link.observe('click', function(e){
                Event.stop(e);
                js_dialog('mybox',{title:this.title, scrollbar:'auto', width:635,height:300, ajax_url:this.href+'&ajax=yes', theme:'blue'});
           });
      }
    });
    $$('a[rel="external_image"]').each(function(link){
      if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
           link.observe('click', function(e){
                Event.stop(e);
                js_dialog('mybox',{title:this.title, scrollbar:'auto', width:700,height:700, iframe:'imageiframe',iframe_src:this.href, theme:'blue'});
           });
      }
    });
    $$('a[rel="popup"]').each(function(link){
      if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
           link.observe('click', function(e){
                Event.stop(e);
                js_dialog('mybox',{title:this.title, scrollbar:'no', width:480,height:150, iframe:'lageriframe',iframe_src:this.href, theme:'blue'});
           });
      }
    });
}
/*****************************************/
function validate_checkbox(e)
{
  if( ! $('validate').checked) {
    alert("Vennligst godkjennn kjøpsbetingelsene");
    Event.stop(e);
    return false;
  }
  return true;
} 
/*****************************************/

function printPreviewAddress(){
     var comment = $('ORDERS.COMMENT');
    if(comment && comment.up('form') && comment.up('form').id == 'orders'){
     var addressId = $('compaddress_id');
     var orderStock = $('ORDERS.DELTYPE');
     var orderDependsStock = $('order_depens_stock');
     var a = $$('a[rel="print-preview"]');
     if(a && (addressId ||  orderStock || comment)) {
          a.each(function(o){
            var curHref = o.href;
            o.observe('mouseover', function(e){
                 var stockVal = orderStock ? '&stock_id=' + orderStock.getValue() : '';
                 var commentVal = comment ? '&comment=' + comment.getValue() : '';
                 var order_Stock = orderDependsStock ? '&stock_partly_id=' + orderDependsStock.getValue() : '';
                 var href = curHref+'&address_id='+addressId.getValue()+ stockVal + commentVal + order_Stock;
                 this.href = href;
                 
            });
         });
     }
    }
}
/*****************************************/
function getComment(){
var comment = $('ORDERS.COMMENT');
$$('form[id^="order-qty"]').each(function(f){
	f.observe('submit', function(e){
		$('orders_comment').value = comment.getValue(); 
                
	});
})
}
/*****************************************/
document.observe("dom:loaded",function() { 
  toggleValueElement();
  addUserProductToOffer();
  observeMarkup();
  observeQuantity();
  submitCheck();
  validateOfferName();
  ajaxSearch();
  deleteConfirmation();
  openPopupCal();
  changeDeliveryAddress();
  companyCheck();
  divHover();
  unlinkConfirmation();
  openNewWindow();
  //popupWindow();
  searchBoxFocus();
  printPreviewAddress();
  getComment();
  getOfferForm();
  validateQuantity();
  quickShop();
  sendToFriend();
  removeUserConfirmation();

  if($("compaddress")){
     $("compaddress").observe('submit', function(e){
       if($("ADDRESS1").value != '' || $("ADDRESS2").value != '' || $("ADDRESS3").value != '' ){
         if($("ADDRESS1").value == '' || $("ADDRESS2").value == '' || $("ADDRESS3").value == ''){
           alert("compaddress_alert");
           Event.stop(e);
         }
       }
     });
  }

  var oForm = $$('form[id="orders"]')[0];
  if (oForm) {
     oForm.observe('submit',validate_checkbox);
  }

  var nav = $('navigation-tree');
  if ( nav ) {
    attachNavigationEvents( nav );
  }

  var ordernu = $('ORDERS.CUSTOMER_ORDER_NUMBER');
  if ( ordernu ) {
    ordernu.focus();
  }

  slowLinks();

}); 

function slowLinks () {

  var links = $$('a.slow_link');
  links.each( function (a) {
      a.observe( 'click', function(e) {
        showWait( a );
        } )
      } );
}

function showWait( a ) {
  a.insert( {after: 
      '<div style="position: absolute; background-color: #def; padding: 5px; border: 1px solid black;" onClick="this.parentNode.removeChild(this)">Vennligst vent<br><img src="/berga2/frontend/files/CONTENT/indicator3.gif"></div>'} );
}

function quickShop() {

  var prodnutxt = $('productnu');
  if ( prodnutxt ) {
    prodnutxt.observe( 'keydown', function (e) {

      var keynum = e.which ? e.which : e.keyCode;
      if ( keynum == 13 ) {
        // Enter
        $('quantity').focus();
        Event.stop(e);
      }
    }
    );

    if ( typeof FOCUS_QUICKSHOP != "undefined" && FOCUS_QUICKSHOP ) {
      prodnutxt.focus();
    }
  }
}

function  cancle_dialogue()
{
   new Ajax.Request('/wsp/berga2/frontend.cgi?func=frontend.show&template=home&logout=yes', {
   onComplete: function () {activeDialog.close() 
}
})
}
function NORFormatCheck(){
   var inp = $$('input[name*="quantity"], input[name*="price"], input[name*="markup"]');
   inp.each(function(o){
       o.observe('keyup', function(e){
          var self = this;
          var f = new numberFormat(self.getValue());
          if(f.validate()){ Event.stop(e); alert("Nummer bare");self.clear();self.focus(); }
          self.up('form').observe('submit', function(evt){ if(self.getValue().blank()){ Event.stop(evt); self.value = '0'; self.focus(); };self.value = f.ENG(); });
       });
   });
}
var numberFormat = new Class.create({

    initialize: function(value){
          var v = value.toString().strip();
          this.value = v == '' || v == ',' ? '0' : (v == '.' ? '0.0' : v);
    },
    validate : function(msg){
          return this.value.match(/[^\d,]/);
    },
    ENG : function(){
       var r = this.value.gsub(/\./,'');
       return (r.gsub(/,/,'.')).gsub('NaN', '0');
    },
    NOR : function(){
       var v = (this.value.gsub(/\./,',')).gsub('NaN','0');
       return this.thousand(v, '.', ',');
    },
    decimalize : function(d){
          if(this.value.match(/,/)){
              this.value = this.value.gsub(/,/,'.');
          }
          var p = '1';
          for(var i = 0; i<d; i++){
              p += '0';
          }
          p = parseInt(p);
          this.value = (Math.round(parseFloat(this.value) * p) / p).toString();
          return this.value;
    },
    thousand : function(val, sep, floatSign){ 
          var v = val.split(floatSign);
          var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
          floatSign += !v[1] ? '00' : v[1];

          while(sRegExp.test(v[0])) { 
              v[0] = v[0].replace(sRegExp, '$1'+sep+'$2'); 
          }
       return v[0]+floatSign;       
    }
});

function validateQuantity () {

  $$('.validateQty').each( function (o) {
    o.observe('change', _doValidateQuantity);
  }
  );
  $$('.validateQty').each( function (o) {
    o.observe('keydown', function (e) { 
      if ( (e.charCode) && (e.keyCode==0))
      code = e.charCode
      else
      code = e.keyCode;

      if ( code == 13 ) {
        _doValidateQuantity(e);
      }} );
    }
  );
}  
function _doValidateQuantity (e) {

  var qtyBox = Event.element(e);
  var parts = qtyBox.id.split('_');
  var sizeId = 'packSize_' + parts[1];
  
  var size = $(sizeId).value * 1; // cast to number
  var qty = qtyBox.value * 1; // cast to number

  if ( qty < 0 ) {
    
    qtyBox.value = 0;

  } else if ( qty > 0 && size > 0 && (qty % size) != 0 ) {
    
    alert( "Feil kvantum. Dette produktet er solgt i enheter av " + size );
    qtyBox.value = ( qty - (qty % size) + size );
    Event.stop(e);
    qtyBox.focus();
  }
}

// IE 6 bug fixed the select box layer overlap the modal calendar box
function clonePosition(src){
  if($("calframe")){ Position.clone(src, $("calframe"), { setLeft : src.style.left, setTop : src.style.top, setHeight : src.style.height }); }
}

/** Ajax navigation **/
var NAV_NODES = {}; // Store open items
function navigate(ev) {

  try {
    var navLink = Event.element(ev);
    var navLinkLevel = navLink.id.match( "(.+)_" )[1];

    if ( navLinkLevel == 'navarticleId' ) {
      // Proceed with normal navigation
      return true;
    }

    var uri = navLink.rel;
    uri = navLink.rel; // somehow FF does not get it the first time

    var nodeNames = new Array ('navminicatId', 'navchapterId', 'navsectionId', 'navarticleId' );

    for ( var i = 0; i < nodeNames.length; ++i ) {
      var nodeName = nodeNames[i];

      if ( uri.search(nodeName) == -1 ) {
        uri = uri + '&' +  nodeName + '=';
        var navNode = NAV_NODES[nodeName];
        if ( navNode && navNode.remove ) {
          navNode.remove();
          NAV_NODES[nodeName] = undefined;
        }
      }
    }

    var nextLevel = navLink.adjacent( 'ul' )[0];
    if ( nextLevel != undefined ) {
      // Menu alredy open so we close it ( TODO: it would be better to hide it )
      if ( nextLevel == NAV_NODES[navLinkLevel] ) {
        NAV_NODES[navLinkLevel] = undefined;
      }
      nextLevel.remove();

      new Ajax.Request( '/wsp/berga2/frontend.cgi?func=frontend.show&template=ajax_navigate&' + uri );

    } else {

      if ( NAV_NODES[navLinkLevel] != undefined ) {
        NAV_NODES[navLinkLevel].remove();
        NAV_NODES[navLinkLevel] = undefined;
      }

      new Ajax.Request( '/wsp/berga2/frontend.cgi?func=frontend.show&template=ajax_navigate&' + uri, 
      {onSuccess: function(resp) {_doNavigate( navLink, resp )} } );
    }

    Event.stop(ev);

  } catch (err) {

    alert( err );
  }
}

function _doNavigate( elBefore, response ) {

  try {

    var parentUl = elBefore.up( 'ul' );
    var className;
    if ( parentUl ) {
      if ( parentUl.hasClassName('sub-menu-content-l1') ) {
        className = 'sub-menu-content-l2';
      } else if ( parentUl.hasClassName('sub-menu-content-l2') ) {
        className = 'sub-menu-content-l3';
      } else {
        className = 'sub-menu-content-l1';
      }
    }

    var nextLevel = new Element( 'ul', {'class': className} );
    nextLevel.innerHTML = response.responseText;

    var navLinkLevel = elBefore.id.match( "(.+)_" )[1];
    NAV_NODES[navLinkLevel] = nextLevel;

    // Insert nextLevel after elBefore
    elBefore.parentNode.insertBefore( nextLevel, elBefore.nextSibling );

    attachNavigationEvents( nextLevel );

  } catch(err) {

    alert( err );
  }
}

function attachNavigationEvents( container ) {

  var nodes = $(container).descendants();
  for ( var i=0; i < nodes.length; ++i ) {
    var thisNode = nodes[i];
    if ( thisNode.tagName == 'A' ) {

      var navLinkLevel = thisNode.id.match( "(.+)_" )[1];
      if ( navLinkLevel != 'navsectionId' && navLinkLevel != 'navarticleId' ) {
        // Do not attach events to article or section links

        thisNode.observe( 'click', navigate );
        var subMenu = thisNode.adjacent( 'ul' )[0];
        if ( subMenu ) {
          NAV_NODES[navLinkLevel] = $(subMenu);
        }
      }
    }
  }
  var s = 9;
}

function sendToFriend () {

  var form = $('sendProductSheet');
  if ( form ) {

    form.observe( 'submit', function (ev) {

      try {
        var spinner = '<img id="spinner" src="/berga2/frontend/graphics/loadingAnimation.gif">';
        form.insert( {before: spinner} );
        form.hide();
        form.request({
          onComplete: function(){ 

            var s = $('spinner');
            s.remove();
            form.show();
              alert('Mail sent!')
            }
          })

          } catch(err) {

            alert( err );
          }  
          Event.stop(ev);
        }
      );

    }
  }
