var freetext = {};
document.observe('dom:loaded', function(){
    var fturl = 'http://'+window.location.hostname + (isSEF ? '/' : scriptFrontend + 'template=') + 'freetext_js';
    new Ajax.Request( fturl, {
         parameters: {debug: 'off'},
         asynchronous: true,
         onSuccess: function(r){
            freetext = r.responseText.evalJSON();
            initFunc();
         }
    });
});

function initFunc(){

  var toggle_input = new togglingInputText();
  toggle_input.obsvTypeText('#search-text, #quick');

  if ( $('login_as_others') ){
    $('login_as_others').observe('submit', loginAsOthers);
  }

  openNewWindow();
  forgotPassword();
  selectBasket();
  productImage();
  selectAddress();
  orderAddressValidate();
  if ( $('change_pwd') ){
    $('change_pwd').observe('submit', validate_changepwd);
  }

  //Function in ajax_js
  ajax_category_menu();
  ajax_publish_menu();
  productTabs();
  if ( $('checkbox_images') ){ $('checkbox_images').observe('click', showImages);}
  if($$('.small-img')){
    $$('.small-img').each(function(o){
      o.observe('mouseover',function(e){ showLargeImages(this,'over'); });
      o.observe('mouseout',function(e){ showLargeImages(this,'out'); });
    });
  }
  if ($('search-form')) {
    $('search-form').observe('submit', function(event) {
      Event.stop(event);
      ajaxSearch('','');
    });
  }
}

function loginAsOthers(e){
  e.stop();
  var url = '/wsp/efa/frontend.cgi?func=frontend.show&login_as='+$('login_as').value+'&template=login_as_others_status&debug=off'; 
  new Ajax.Request(url, {
    method: 'get',   
    onSuccess: function(transport) {
      if(transport.responseText == 0){
        $('error_msg').innerHTML = '';
        $('login_as_others').submit();
      }else{
        $('error_msg').innerHTML = transport.responseText;
      }
    }
  });

}

function changeUserInfoSubmit(){
try{
  var submitform = $('change_info');
  if(submitform){
    submitform.observe('submit', function(e){
      submitform.select('input').each(function(i){
        i.stopObserving('blur');
        if(!i.title.blank() && i.value == i.title){
          i.value = '';
        }
      });
    });
  }
}catch(err){alert(err);}
}

function validate_changepwd(event) {
  var inputs = Event.element(event).getInputs();
  var status = new Array();

  for(i = 0; i < inputs.length;i++) {
      validate_field(inputs[i]);
      if(inputs[i].readAttribute("id") == 'password_new2'){
        if(!$('password_new1').hasClassName('error')&&!$('password_new2').hasClassName('error')){   
          if($('password_new1').value != $('password_new2').value){
            add_error(inputs[i],'pwd_notmatch');
          }
        }        
      }
  }
  for(i = 0; i < inputs.length;i++) {
    if (inputs[i].hasClassName('error')) {
        Event.stop(event);
        return false;
    }else if (inputs[i].hasClassName('error_email')) {			
	Event.stop(event);
	return false;
    }
  }
}

function validate_field(element) {
        if(element.up()){
          remove_error(element);
        }
	validations.each(function(pair) {
		if (element.hasClassName(pair.key)) {
			var valid = pair.value(element);
			if ((pair.key == 'mandatory') && !valid) {
                                add_error(element,'mandatory');
                        }else if ((pair.key == 'email') && !valid) {
                                //alert(pair.key);
                                add_error(element,'email');
                        }                       
		}
	});
  
}

function remove_error(element) {
   element.up().removeClassName('error');
   element.removeClassName('error');
   if(element.next('span.error')){
      element.next('span.error').remove();      
   }
}

function add_error(element,error_type) {   
   var err_msg;   
   if(error_type == 'mandatory'){
       err_msg  = freetext.invalid_filed;
   }else if(error_type == 'email'){
       err_msg  = freetext.w_email_format;
   }else if(error_type == 'pwd_notmatch'){
       err_msg  = freetext.w_validate_pwd_cf;
   }else{
       err_msg  = freetext.invalid_filed;
   }
   if(element.up()){
     element.up().addClassName('error');
   }   
    element.addClassName('error');
    var err = new Element('span',{ 'class' : 'error'}).update(err_msg);
    element.insert({'after': err});

}

/** Form validations **/
var validations = new Hash();
validations.set('number', function(element) {
	return (element.value.blank()) || checknumber(element.value);
	});
validations.set('email', function(element) {
	return (element.value.blank()) == "" || checkemail(element.value);
	});

validations.set('mandatory', function(element) {
	return !element.value.blank();
});

function checknumber(value){
	var anum=/(^[+-]?\d+$)|(^[+-]?\d+\.\d+$)/
	return (anum.test(value));
}

function checkemail(str){
	var aemail=/(^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)/
	return (aemail.test(str));
}

String.prototype.iso2utf8 = function(){
   var self = this,
       pattern = [{"char":"æ", "replacement":"&aelig;"},{"char":"ø", "replacement":"&oslash;"},{"char":"å", "replacement":"&aring;"},{"char":"Æ", "replacement":"&AElig;"},{"char":"Ø", "replacement":"&Oslash;"},{"char":"Å", "replacement":"&Aring;"}];
       pattern.each(function(s){
            self = self.gsub(new RegExp(s.char), s.replacement);
       });
  return self;
};

function check_contact_form(){
    var district = document.contact_form.elements['district'].value;    
    var category = document.contact_form.elements['prod_cat'].value;
    var telephone = document.contact_form.elements['phone_number'].value;
    var str_phone = validate_phone(telephone);

    if (district == 'Ditt navn') {
      $('error_message').update("Vennligst oppgi ditt navn");
      $('error_message').show(); 
      return false;
    } else if(str_phone){
      $('error_message').update(str_phone);
      $('error_message').show(); 
      return false; 
    } else if(category == 'Velg produktkategori'){
      $('error_message').update("Vennligst oppgi kategori");
      $('error_message').show(); 
      return false;     
    }

 $('error_message').update("");
 return true;
}

function validate_phone(telephone_str){

  var strPhone = telephone_str.split(' ').join('');
  var telephone_filter = /^([\d]+)$/i;
  var text;
  if (!telephone_filter.test(strPhone)){
    text ="Telefonnummeret kan bare inneholde tall";
  }
  else if(strPhone < 10000000 || strPhone > 99999999){
    text = "Telefonnummeret er ugyldig";
  }
 return text;
}


/*------------ 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;
  }
}

// Loop up ziparea from zipcode
// Takes 3 input parameters
// zipcode - The zipcode to look up
// languagecode - Supports several language codes, default is 'NO' or ''
// id - Id for field to display name of ziparea in
// NB! Requires Prototype to work
function ajaxzip(zipcode,languagecode,id) {
  var exturl = 'http://www.webon.net/wsp/webon_ekstranett/frontend.cgi?func=ajax_services.zipcode&debug=off'
  exturl = exturl + '&zipcode=' + zipcode + '&languagecode=' + languagecode + '&language=' + languagecode;
  var url = '/wsp/efa/frontend.cgi?func=ajax.call&ajax_func=get_url&debug=off&url=' + encodeURIComponent(exturl); 
  var retur = "";

  new Ajax.Request(url, {
    onSuccess: function(transport) {
      var ziparea = $(id);
      if(ziparea) {
        var json = transport.responseText.evalJSON();
        if(json) {
          if(json.status == '') {
            $(ziparea).writeAttribute('value',json.ziparea);  
            retur = json.ziparea;
          }
          else {
            $(ziparea).writeAttribute('value','');  
            alert(json.status);
          }
        }
      }
    }
  });

  return retur;
}

function checkstock(stock) {
 // if(stock.checkstockno.value < stock.quantity.value) {
 //   alert("alert_nostock");
 // }
 return true;
}

function updatebasket(pid,stock){
    var qty = 'quantity_'+pid;    
    var quantity;
    if($(qty).value == 0){
      $(qty).value = 1;
    }    
    var url = scriptFrontend+'func=shop.buy&func_id='+pid+'&quantity='+$(qty).value+'&template=ajax_top_basket&debug=off&option=add'; 
    new Ajax.Request(url, {   
       method: 'get',   
        onLoading: function(){  
         $('basket_box').style.backgroundImage='url(/efa/frontend/ajax-loader.gif)';
         $('basket_box').style.backgroundPosition='90% 50%';
         $('basket_box').style.backgroundRepeat='no-repeat';
       },
       onSuccess: function(transport) {    
           if ($('title_'+pid).className == 'add-to-basket'){
             $('title_'+pid).className='prod-long-bg';
           }else if($('title_'+pid).className == 'baskt-icon'){
             $('title_'+pid).src='/efa/frontend/design/icons/basket-icon-gr.gif';
           }else{
             $('title_'+pid).className='prod-bg';
           }
             $('title_'+pid).value='allready_in_basket';
           $(qty).value = 0;
           $('top_basket').update(transport.responseText);
       }
  }); 
  return false;
}

/** Toggle **/
/* Use Class togglingInputText instead
function togglingInput(){
 if($$('.toggle')){
     $$('.toggle').each(function(i){
         i.observe('focus', function(e){ if(this.getValue() == this.title){ this.clear(); }});
         i.observe('blur', function(e){ if(this.getValue().blank()) {this.value=this.title; }});
     });
  }
}
*/

/** Image rotation **/
function imagesRotation(){
   if($$('img[rel="front-banner"]').length > 0){
   var url = isSEF ? '/'+freetext.sef_banner_rotate : '/wsp/efa/frontend.cgi?func=frontend.show&template=banner_rotation_ajax&debug=off';
   var div = $('teaser');
   var defaultDuration = 6.5;

 if(div){  div.setStyle({ "height":div.getHeight()+"px" }); }
   new Ajax.Request(url, {
       onComplete: function(r){
            var j = r.responseText.evalJSON();
                j.each(function(obj){
                  var p = new Element('p', {"duration" : obj.DURATION, "class":"rotation-image"}).hide();
                  var img = new Element('img', {"class": "rotation-image ad", "rel": "front-banner", "src": '/efa'+obj.IMG, "alt": obj.TXT });

                  if(obj.BANNER_TXT != ''){
                    //var banner_text = new Element('a', {'rel': 'banner-text', 'href':obj.BANNER_TXT.LINK, 'title': obj.BANNER_TXT.TXT, 'class':obj.BANNER_TXT.CLASSNAME}).update('<img src="'+obj.BANNER_TXT.SRC+'" alt="'+obj.BANNER_TXT.TXT+'">');
                    var banner_text = new Element('strong', {'rel': 'banner-text', 'class':obj.BANNER_TXT.CLASSNAME}).update(obj.BANNER_TXT.TXT);
                    p.insert({bottom:banner_text});   
                  }
                  p.insert({bottom:img});
                  $('teaser').insert({bottom:p});
                 });
        var i=0;
        if(j.length>0){
       new PeriodicalExecuter(function(pe){
           var p = $$('p.rotation-image');
           if(!p || p.length == 0 || !p[0]){ pe.stop(); }
           try{
         
            var duration = Math.round((parseFloat(isNaN(p[0].readAttribute("duration")) ? 0 : p[0].readAttribute("duration")) / 10)*10) > 0 ? parseFloat(p[0].readAttribute("duration")) : defaultDuration;
}catch(err){
  pe.stop();
}           
 i++;
            var banner_textLink = p[0].previous('strong[rel="banner-text"]');
            if(i==0){ if(banner_textLink){  banner_textLink.show(); } $(p[0]).appear(); }
            if(i == (duration * 10)-10){
               if(banner_textLink){  banner_textLink.remove(); }
               (p[0]).fade();
            }
            if (i==(duration * 10)){
              var clone = $(p[0]).cloneNode(true);
              $(clone).select('*[id]').concat(clone).invoke('writeAttribute', { id: null });
              var img = clone;
              $('teaser').insert({bottom:img.hide()});
              $(p[0]).remove();
              i=-1;
            }
        },0.1);
        }
       }
   });
}
}

window.onload=function(){   imagesRotation(); }

/***** Open new window *****/
function openNewWindow() {
   $$('a[rel="external"]').each(function(link){
     if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
     link.writeAttribute('target','_blank');
     } 
   });
   $$('a[rel="top"]').each(function(link){
     if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
     link.writeAttribute('target','_top');
     }
   });
}

function regis_validate_telephone(telephone_str){
  var telephone_filter = /^([\d]+)$/i;

  if (!telephone_filter.test(telephone_str)){
    return ("Telefonnummeret kan bare inneholde tall");
  }else if(telephone_str < 10000000 || telephone_str > 99999999){
    return ("Telefonnummeret er ugyldig");
  }else{
    return '';
  }
}

function regis_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)){
    return false;
  }else{
    return true;
  }
}

function regisValidate(form){
    var warning = '';
    var email = form.email.value;    
    var password = form.password.value;
    var cf_password = form.cf_password.value;
    var firstname = form.firstname.value;
    var lastname = form.lastname.value;
    var telephone = form.telephone.value;
    var companyid = form.companyid.value;

    if(companyid){
      if (!email || ($$('.checkuser-error') && $$('.checkuser-error').length > 0)) {
        warning = warning + freetext.w_validate_email +'<br />';
      }
      if(!password || !cf_password){
        warning = warning + freetext.w_validate_pwd + '<br />';
      }else if (password.length < 4 && cf_password.length < 4){
        warning = warning + freetext.w_validate_pwd_digits + '<br />';
      }else if (password != cf_password){
        warning = warning + freetext.w_validate_pwd_cf + '<br />';
      }
      if(!firstname){
        warning = warning + freetext.w_validate_firstname + '<br />'  ;
      }
      if(!lastname){
        warning = warning + freetext.w_validate_lastname + '<br />';
      }
      /*if(telephone){
        warning = warning + regis_validate_telephone(telephone);
      }*/
    }else{
      warning = warning + freetext.w_customer_id;
    }
    if (warning) {
      $('error_message').update(warning);
      $('error_message').show(); 
      return false;
    }else{
      return true;
    }
}

function regis_duplicate_user(email_str){
  var warning = $('user-exist');
  if(email_str){
    var params = { username: email_str, debug: 'off'};
    var filter = /true/gi;
    var url = isSEF ? '/'+freetext.sef_regis_chkuser : URL_BASE + 'func=user.valid';

    new Ajax.Request(url, {
      parameters: params,
      onLoading: function(){ warning.removeClassName('checkuser-error'); warning.update(freetext.s_please_wait).show(); },
      onSuccess: function(r){
        warning.removeClassName('checkuser-error');
        warning.hide();
        if (r.responseText.match(filter)){
          if(!regis_validate_email(email_str)){
            warning.addClassName('checkuser-error');
            warning.update(freetext.w_email_format).show();
          }else{
            warning.update(freetext.w_email_can).show();
          }
        }else{
          warning.addClassName('checkuser-error');
          warning.update(freetext.w_email_dup).show();
        }
      }
   });
  }else{
    warning.removeClassName('checkuser-error'); 
    warning.update('').hide();
  }
}

function regisGetCompany(form){

    var customer_id = form.customer_id.value;
    var err_msg = customer_id + ' ' + freetext.w_not_customer_id;
    var err_box = $('error_message');

    /* Clear detail */
    $('companyid').clear();
    $$('.company-detail input').each(function(input){ input.clear(); });
    if (err_box){err_box.hide();}
    $(form.customer_id).removeClassName('warning-block');

    if(/^([\d]+)$/i.test(customer_id) && parseInt(customer_id) != 0){
      var submit_btn = form.submit;
      var params = { customer_id: customer_id, debug: 'off', json: 'yes', encoding: 'iso-8859-1'};
      var url = isSEF ? '/'+freetext.sef_regis_search : URL_BASE + 'func=search.company';

      new Ajax.Request(url, {
        parameters: params,
        onLoading: function(){ submit_btn.value = freetext.s_please_wait; },
        onSuccess: function(r){
          try{

            submit_btn.value = freetext.regis_get_detail;

            /* Show detail if found*/        
            if (!r.responseText.blank() && r.responseText != 0){

              var info = r.responseText.evalJSON().information[0];
              $('companyid').value = info.COMPANY_ID;
              $('c_name').value = info.COMPANY == 'null' || info.COMPANY == null ? '' : info.COMPANY;
              $('c_postbox').value = info.PO_BOX == 'null' || info.PO_BOX == null ? '' : info.PO_BOX;
              $('c_post').value = info.ZIPCODE == 'null' || info.ZIPCODE == null ? '' : info.ZIPCODE;
              $('c_city').value = info.CITY == 'null' || info.CITY == null ? '' : info.CITY;
              $('c_address').value = info.ADDRESS == 'null' || info.ADDRESS == null ? '' : info.ADDRESS;
              $('c_telephone').value = info.TELEPHONE == 'null' || info.TELEPHONE == null ? '' : info.TELEPHONE;
              $('c_telefax').value = info.TELEFAX == 'null' || info.TELEFAX == null ? '' : info.TELEFAX;
              $('d_address').value = info.D_ADDRESS == 'null' || info.D_ADDRESS == null ? '' : info.D_ADDRESS;
              $('d_post').value = info.D_ZIPCODE == 'null' || info.D_ZIPCODE == null ? '' : info.D_ZIPCODE;
              $('d_city').value = info.D_CITY == 'null' || info.D_CITY == null ? '' : info.D_CITY;
              $('orgno').value = info.ORGNO == 'null' || info.ORGNO == null ? '' : info.ORGNO;
              $('contactperson').value = info.CONTACT == 'null' || info.CONTACT == null ? '' : info.CONTACT;

            }else{
              if (err_box){
                err_box.update(err_msg);
                err_box.show();
              }
              $(form.customer_id).addClassName('warning-block');
            }
          }catch(err){ alert(err); }
        }
     });
   }else if(customer_id.length != 0){
     if (err_box){
       err_box.update(err_msg);
       err_box.show();
     }
     $(form.customer_id).addClassName('warning-block');
   }
}

function forgotPassword() {
   var f = $$('.forgot-pw-link');
   if(f) {  
      f.each(function(a){
         a.observe('click', function(e){
            Event.stop(e);
            var url = this.readAttribute("href");
            GB_showCenter('', url, 220, 370);
         });
      });
   }
}

function selectBasket(){

 if($('baskettable') || $('userOrder')) {
 
  var selectedBasketline = $$(".selected_basketline");

  if($('getBname')){ var bname = $('getBname').innerHTML; }
  if($('getBid')){ var bid = $('getBid').innerHTML; }
  if($('getTemplate')){ var template = $('getTemplate').innerHTML; }
  if($('getFunc')){ var func = $('getFunc').innerHTML; }

  var nof_select = 0;
  bkSelect = new Array();


         selectedBasketline.each(function(e){ 
            if(!e.checked){
              e.writeAttribute('checked','checked');
              e.checked = true;
              nof_select++;
              bkSelect.push(e.value);
            }
         });

         if (nof_select > 0) {
           /*** Add button on inc_basket_content1 ***/
           if($('baskettable')) {
             var copylink = (isSEF ? '/' + freetext.sef_basket_copy + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=copy&template=edit_basket&') + 'bname=' + bname + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');
             var newlink = (isSEF ? '/' + freetext.sef_basket_save_new + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=new&template=lagrede_ordre&') + 'bid=' + bid + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');
             var addLink = '<a href=\"' + copylink + '\" title=\"' + bname + '\" class=\"btn-large\">' + freetext.b_save_add  + '<\/a>' + '&nbsp' +
                           '<a href=\"' + newlink + '\" title=\"' + bname + '\" class=\"btn\">' + freetext.b_save_delete +'<\/a>';            
             $('add-bkline').update(addLink);
           }
           /*** Add button on user_order_detail  ***/
           else if($('userOrder')) {
             var addLink = '<a href=\"/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '">Legg til </a> &nbsp;<a href="/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '"><img src="/efa/frontend/files/basket.gif" align="absmiddle" alt="checkout"></a>';
             $('add-bkline').update(addLink);
           }
         }
         else{ 
           if($('baskettable')) {
             $('add-bkline').update();
           }
           /*** Add button on user_order_detail  ***/
           else if($('userOrder')) {
             $('add-bkline').update();
           }
         }



         $('selectall').observe('click', function(j){
              if(!this.checked){ 
                  selectedBasketline.each(function(e){ 
                     if(e.checked){
                       e.removeAttribute('checked','checked');        
                       if (nof_select > 0){ nof_select--; }
                       e.checked = false; 
                       bkSelect = bkSelect.without(e.value);
                     }
                  });
              }
              else if(this.checked) {
                  selectedBasketline.each(function(e){
                     if(!e.checked){
                       e.writeAttribute('checked','checked');
                       e.checked = true;
                       nof_select++;
                       bkSelect.push(e.value);

                     }
                  });
              } 
               
             if (nof_select > 0) {
               /*** Add button on inc_basket_content1 ***/
               if($('baskettable')) {
                 var copylink = (isSEF ? '/' + freetext.sef_basket_copy + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=copy&template=edit_basket&') + 'bname=' + bname + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');
                 var newlink = (isSEF ? '/' + freetext.sef_basket_save_new + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=new&template=lagrede_ordre&') + 'bid=' + bid + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');

                 var addLink = '<a href=\"' + copylink + '\" title=\"' + bname + '\" class=\"btn-large\">' + freetext.b_save_add  + '<\/a>' + '&nbsp' +
                           '<a href=\"' + newlink + '\" title=\"' + bname + '\" class=\"btn\">' + freetext.b_save_delete + '<\/a>';            
                 $('add-bkline').update(addLink);
               }
               /*** Add button on user_order_detail  ***/
               else if($('userOrder')) {
                 var addLink = '<a href="/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '">Legg til </a> &nbsp;<a href="/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '"><img src="/efa/frontend/files/basket.gif" align="absmiddle" alt="checkout"></a>';
                 $('add-bkline').update(addLink);
               }
             }
             else{ 
               if($('baskettable')) {
                 $('add-bkline').update();
               }
               /*** Add button on user_order_detail  ***/
               else if($('userOrder')) {
                 $('add-bkline').update();
               }
             }
                                          
         });

     selectedBasketline.each(function(v){
         v.observe('click', function(e){
              if(!this.checked){ 
                 if (nof_select > 0){ nof_select--; }
                 bkSelect = bkSelect.without(this.value);
              }
              else if(this.checked) {
                 nof_select++;
                 bkSelect.push(this.value); 
              }                                     

             if (nof_select > 0) {
               /*** Add button on inc_basket_content1 ***/
               if($('baskettable')) {
                 var copylink = (isSEF ? '/' + freetext.sef_basket_copy + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=copy&template=edit_basket&') + 'bname=' + bname + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');
                 var newlink = (isSEF ? '/' + freetext.sef_basket_save_new + '/?' : '/wsp/efa/frontend.cgi?func=shop.buy&option=new&template=lagrede_ordre&') + 'bid=' + bid + '&bkline_id=' + (bkSelect.join(',')).gsub(',',':');

                 var addLink = '<a href=\"' + copylink + '\" title=\"' + bname + '\" class=\"btn-large\">' + freetext.b_save_add  + '<\/a>' + '&nbsp' +
                           '<a href=\"' + newlink + '\" title=\"' + bname + '\" class=\"btn\">' + freetext.b_save_delete +'<\/a>';            
                 $('add-bkline').update(addLink);
               }
               /*** Add button on user_order_detail  ***/
               else if($('userOrder')) {
                 var addLink = '<a href="/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '">Legg til </a> &nbsp;<a href="/wsp/efa/frontend.cgi?func=frontend.show&option=buy&func_id=' + func + '&template=user_order_detail&ordline_id=' + (bkSelect.join(',')).gsub(',',':') + '"><img src="/efa/frontend/files/basket.gif" align="absmiddle" alt="checkout"></a>';
                 $('add-bkline').update(addLink);
               }
             }
             else{ 
               if($('baskettable')) {
                 $('add-bkline').update();
               }
               /*** Add button on user_order_detail  ***/
               else if($('userOrder')) {
                 $('add-bkline').update();
               }
             }

         });
        
     });
 }
}

var togglingInputText = Class.create({
  obsvTypeText : function(inp){
    inp = $$(inp) || '';
    if(inp){
      inp.each(function(i){
        if(i.getValue().blank() && !i.title.blank()){ i.value = i.title; }
        i.observe('focus', function(e){ if(this.getValue() == this.title){ this.clear(); }});
        i.observe('blur', function(e){ if(this.getValue().blank()){this.value=this.title; }});
      });
    }
  },
  obsvTypePassword : function(inp){
    inp = $$(inp) || '';
    cls = 'password-label';
    clsHidden = 'hidden';
    if(inp){
      inp.each(function(i){
        var iText = i.previous('input.'+cls,0);
        if(iText){
          iText.removeClassName(clsHidden);
          i.hide();
          iText.observe('focus', function(e){ 
              iText.hide();
              i.show().focus(); 
              if(i.getValue() == i.title){ 
                i.clear();
              }
          });
          i.observe('blur', function(e){ 
              if(i.getValue().blank() || i.getValue() == i.title){
                iText.show();
                i.hide();
                i.value=i.title;
              }
          });
        }
      });
    }
  }
});


function productImage() {
    var productBigFirst = $('product-big-1');
    var thumbSlider = $('thumb-slider');
    var imgLinks =  $$('#prod-room > a');

    if(thumbSlider) {

       $$('.thumb-prod').each(function(i){
         i.observe('click', function(e){
            prodImg = this.readAttribute('alt');
            getprodImgID = this.readAttribute('rel');
            prodImgID = $(getprodImgID);

            prodImgBig = '<img src=\"' + prodImg  +'\">';

             imgLinks.each(function(a){
              a.update('');
              a.removeClassName('page-options');
              a.addClassName('hidden');
             });
       
            /*productBigFirst.update('');
            productBigFirst.removeClassName('page-options');
            productBigFirst.addClassName('hidden');

            if (prodImgID.hasClassName('page-options')) {
              prodImgID.removeClassName('page-options');
              prodImgID.addClassName('hidden');
            }*/

            if (prodImgID.hasClassName('hidden')) {
              prodImgID.removeClassName('hidden');
              prodImgID.addClassName('page-options');
            }


            prodImgID.update(prodImgBig);
            prodImgID.writeAttribute('href', prodImg);
         });
     });
    }
}

function selectAddress() {
  if($('deliveryList')) {
    var oSelect = $('deliveryList');
    oSelect.observe('change', function(e){

      // remove validate msg
      $('warning-required-fields').hide();
      $$('.required-fields').each(function(elem){
        elem.removeClassName('required-fields');
      });

      var url = scriptFrontend + 'template=get_deliveryaddress&debug=off&orderid=' + oSelect.value;
      new Ajax.Request( url , { 
        onSuccess : function(resp) { 
	  var oAddress = resp.responseText.evalJSON();
         
          if($('ORDERS.D_COMPANY')) { $('ORDERS.D_COMPANY').value = oAddress.D_COMPANY; }
          if($('ORDERS.D_FNAME')) { $('ORDERS.D_FNAME').value = oAddress.D_FNAME; }
          if($('ORDERS.D_LNAME')) { $('ORDERS.D_LNAME').value = oAddress.D_LNAME; } 
          if($('ORDERS.D_ADDRESS')) { $('ORDERS.D_ADDRESS').value = oAddress.D_ADDRESS; }
          if($('ORDERS.DELIVERY')) { $('ORDERS.DELIVERY').value = oAddress.DELIVERY; }
          if($('ORDERS.D_ZIPCODE')) { $('ORDERS.D_ZIPCODE').value = oAddress.D_ZIPCODE; }
          if($('ORDERS.D_CITY')){ $('ORDERS.D_CITY').value = oAddress.D_CITY;  }
          if($('ORDERS.D_EMAIL')) { $('ORDERS.D_EMAIL').value = oAddress.D_EMAIL;  }
          if($('ORDERS.CUSTOMER_REF')) { $('ORDERS.CUSTOMER_REF').value = oAddress.CUSTOMER_REF; }
        },
        onFailure : function(resp) {
          alert(resp.responseText)
        }
      });

    });
  }
}

function orderAddressValidate(){
  var form = $('order-address');
  if(form){
    form.observe('submit', function(e){
      Event.stop(e);
      var valid = [1,1,1],
          warningText = [freetext.o_warning, freetext.o_warning_postnr, freetext.o_warning_email],
          error = '',
          invalidFields = function(elem){
            if(!elem.hasClassName('required-fields')){ elem.addClassName('required-fields'); }
            return 0;
          };

      form.select('input').each(function(i){
        if(i.hasClassName('mandatory') && i.value.blank()){
          valid[0] = invalidFields(i);
        }else if(i.hasClassName('zipcode') && !checkzipcode(i.value)){
          valid[1] = invalidFields(i);
        }else if(i.hasClassName('email') && !checkemail(i.value)){
          valid[2] = invalidFields(i);
        }else{
          if(i.hasClassName('required-fields')){ i.removeClassName('required-fields'); }
        }
      });

      valid.each(function(text, i){
        if(text == 0){
          error = error + warningText[i] + '<br>';
        }
      });

      if(error != ''){
        $('warning-required-fields').update(error).show();
      }else{
        form.submit();
      }
    });
  }
}

function checkzipcode(zipcode_str){
  var zipcode_filter = /^([\d]+)$/i;
  if (!zipcode_filter.test(zipcode_str) || zipcode_str < 1 || zipcode_str > 9999){
    return false;
  }else {
    return true;
  }
}

