document.observe('dom:loaded', function(){
  openNewWindow();
  togglingInput();
  bestillPrivatSubmit();
  bestillBedriftSubmit();
  contactUsSubmit();
  openPopupCal();
  invAddress();
  toggleChat();
  random_imglink();
  addGroupTable();
  showNotify();
  hideNotify();
 
});

var GB_ROOT_DIR = 'http://dev2.webon.net/WO62/greybox/';

/*------------ 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 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/ishavskraft2_dev/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;
}

/**************** Toggle ***********************/
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; }});
     });
  }
}

/*********** Chat ***********/

function toggleChat(){
 
 var chatBanner = $$("img[id^='chat_banner']");
 var chatOperator = $$("div[id^='chat_operators']");

 var publishInfo = $("publish-info");
 var press = $("press");
 var reference = $("reference");

 if(chatBanner){
     chatBanner.each(function(i){
         i.observe('click', function(e){ 
               chatOperator.each( 
                 function(c){  
                  if(c.hasClassName('chat-operators')){   
                   c.removeClassName('chat-operators'); 
                     //alert (publishInfo.getHeight());
                   if(publishInfo && publishInfo.getHeight() < 700){
                     publishInfo.setStyle({'height':'730px'}); 
                   }
                   if(press && press.getHeight() < 700){
                     press.setStyle({'height':'730px'}); 
                   }
                   if(reference && reference.getHeight() < 700){
                     reference.setStyle({'height':'730px'}); 
                   }
                  }else{  
                   c.addClassName('chat-operators');  
                   if(publishInfo){
                     publishInfo.setStyle({'height':'100%'}); 
                   }
                   if(press){
                     press.setStyle({'height':'100%'}); 
                   }
                   if(reference){
                     reference.setStyle({'height':'100%'}); 
                   }
                  }  
                 }  
               );  
         });
    });
  }
}



/***************** Pop up **********************/

function ajaxIFrameLoad(f, callback){
         var iframe = new Element('iframe', { 'id' : 'target', 'name' : 'target', 'src' : 'about:blank', 'style' : 'display:none' });
           f.insert({'after' : iframe});
           f.setAttribute('target', 'target');
           f.submit();
           new PeriodicalExecuter(function(pe) { 
                var result = iframeLoaded('target');
                if(!result.blank()){
                   pe.stop();
                   callback(result);
                   if($('target')){ $('target').remove(); }
                 }
           }, 3);
}
function iframeLoaded(id){
        var i = $(id);
        if(i.contentDocument) {
           var d = i.contentDocument;
        }else if (i.contentWindow) {
            var d = i.contentWindow.document;
        }else {
            var d = window.frames[id].document;
        } 
        if(d.body && !d.body.innerHTML.blank()) {
            return d.body.innerHTML;
        }else{
            return '';
        }
}
var popup = new Class.create({
      initialize : function(popupId, innerElem, opt){
           
            this.opt = opt;
            this.self = this;
            var s = this;
            var vp = document.viewport;
            this.innerElem = innerElem;
            this.backdrop =  new Element('div', { id : 'backdrop'}).setStyle({ 'width' : '100%',  'display' : 'none', 'background' : '#000', 'left' : '0', 'top':'0', zIndex : '998' });
            this.frame = new Element('iframe', { 'id' : 'iframe-overlay','frameborder' : 'no', 'style' : 'z-index:997;border:0 none;width:100%;left:0;top:0' });
            $(this.frame).setOpacity(0);
            $(document.body).insert({'bottom' : $(this.frame)});
            this.div = innerElem;
            this.div.setStyle({zIndex:'999'});
            this.div.id = popupId;
            this.div.addClassName('webon-popup');
            if(!$('backdrop')){ $(document.body).insert({'bottom':this.backdrop}); }
            $(this.div).observe('click', function(){ 
                s.destroy(); 
                if(searching!=null){ searching.transport.abort(); }
            });
            $('backdrop').observe('click', function(){ 
                s.destroy();
                if(searching!=null){ searching.transport.abort(); }
            });
            $(this.div).setStyle({'width' : this.opt.width+'px', 'height' : this.opt.height+'px', left : ((vp.getWidth() - this.opt.width)*0.5)+'px', 'top' : ((vp.getHeight() - this.opt.height)*0.5)+'px' });
     },
      display : function(){  
          if(!$(this.backdrop).visible()){
             new Effect.Appear('backdrop', { duration : 0.1 , to : 0.6});
             $(document.body).insert({'bottom' : $(this.div)});
           }

      },
      destroy : function(){
         if($(this.div)){ 
             $(this.frame).remove();
             $(this.div).hide();
             $(this.div).remove();  
             $('backdrop').remove();  
         }
      },
      alertBox : function(title, callback){
           var s = this.self;
           Event.stopObserving($(this.backdrop), 'click');
           Event.stopObserving($(this.div), 'click');
           $(this.div).setStyle({'overflow' : 'auto'});
           var xBtn = new Element('span').update('<img src="/ishavskraft2_dev/frontend/css/ishavskraft_close-btn_tips.jpg" title="'+'close_window'+'">').setStyle({ 'cursor':'pointer','display':'block','float':'right','paddingRight' : '3px' }).observe('click', function(e){ s.destroy(); });
           var top = new Element('div').update(xBtn).setStyle({'height':'27px', 'line-height':'27px','text-align':'right','clear':'both','background':'url(/ishavskraft2_dev/frontend/css/alert_header_bg.gif) 0% repeat-x', 'borderBottom' : '1px solid #ffffff'});
               top.insert({'top': '<span style="float:left;padding-left:5px;padding-top:5px;color:#ffffff">'+title+'</span>' });
           var btn = new Element('button',{ 'id' : 'ok-btn-alertBox', 'style' : 'margin-top:10px;height:22px;'}).update('<span>OK</span>').observe('click', function(e){ s.destroy(); if(callback && typeof(callback)=='function'){ callback();} }).wrap('p');
           this.div.insert({ 'top' : top }).insert({'bottom':btn});
           s.display();       
      },
      confirmBox : function(title, callback){
       var s = this.self;
           Event.stopObserving($(this.backdrop), 'click');
           Event.stopObserving($(this.div), 'click');
           $(this.div).setStyle({'overflow' : 'auto'});
           var xBtn = new Element('span').update('<img src="/ishavskraft2_dev/frontend/css/ishavskraft_close-btn_tips.jpg" title="'+'close_window'+'">').setStyle({ 'cursor':'pointer','display':'block','float':'right','paddingRight' : '3px' }).observe('click', function(e){ s.destroy(); });
           var top = new Element('div').update(xBtn).setStyle({'height':'27px', 'line-height':'27px','text-align':'right','clear':'both','background':'url(/ishavskraft2_dev/frontend/css/alert_header_bg.gif) 0% repeat-x', 'borderBottom' : '1px solid #ffffff'});
               top.insert({'top': '<span style="float:left;padding-left:5px;padding-top:5px;color:#ffffff">'+title+'</span>' });
           var yesbtn = new Element('button',{ 'class' : 'button', 'style' : 'margin-top:10px;height:25px;'}).update('yes').observe('click', function(e){ s.destroy(); if(callback && typeof(callback.yes)=='function'){ callback.yes();} });
           var nobtn = new Element('button',{ 'class' : 'button', 'style' : 'margin-left:5px;margin-top:10px;height:25px;'}).update('no').observe('click', function(e){ s.destroy(); if(callback && typeof(callback.no)=='function'){ callback.no();} });
           var p = new Element('p').insert({'top':yesbtn}).insert({'bottom':nobtn});
           this.div.insert({ 'top' : top }).insert({'bottom':p});
           s.display();
      },
      isDisplayed : function() {
          if($('backdrop') && $('backdrop').visible()){ return true; }else{ return false; }
     }

  });
  var MsgBox = new Class.create({
      initialize : function(msg, title, opt, callback){
           this.msg = msg;
           this.title = title;
           this.callback = callback;
           this.div = new popup('alert', new Element('div').update(msg).setStyle({'background' : '#CDE7F4', 'border' : '4px solid #ffffff'}),{ 'width' : opt.width, 'height' : opt.height});
      },
      showAlert : function(){
           this.div.alertBox(this.title, this.callback);
           this.show();
      },
      show : function(){ 
           this.div.display();
           Event.stopObserving($('backdrop'), 'click');
      },
      showConfirm : function(){
           this.div.confirmBox(this.title, this.callback);
           this.show();
      }
  });

/******** Tell Friends *********/
function tellFriendSubmit(){
  if($('tell_friend')){
      Event.stopObserving($('tell_friend_form'), 'submit');
      $('tell_friend_form').observe('submit', function(e){
           Event.stop(e);
           var f = this;
           var err = 0;
           errMsg = new Array();
           var inp = f.select('input[type="text"], [disabled!="disabled"], select, textarea');
               inp.each(function(o){
                  var i = new ValidateFields(o);
                  if(o.id == 'verify-sender-email' || o.id == 'verify-recipient-email'){
                     if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
                     else if(!i.isEmail()){ err++; errMsg.push("alert_email"); }
                  }else{
                     if(i.isBlank() || o.value == o.title){  err++; errMsg.push(o.title); }
                  } 
               });
           if(err<1){
                 f.insert({'bottom':'<input type="hidden" id="ajax" name="ajax" value="yes">'});
                 f.hide();
                 ajaxIFrameLoad(f, function(result){ $('tip_friend').update(result); });               
                 $('tip_friend').insert({'top' : '<p><strong>loading</strong><br><img src="/ishavskraft2_dev/frontend/graphics/loadingAnimation.gif"></p>'}); 
           }else{
                var warning = new MsgBox('<p>Vennligst oppgi følgende (påkrevd) informasjon:</p><strong>'+(errMsg.join(', ')).gsub(':','')+'</strong>', 'Advarsel!', {'width':320,'height':155});
                warning.showAlert();
           }
        });
    }
}
/*** Bestill Privat ***/
function bestillPrivatSubmit(){
 if($('bestill-privat-form')){  
  $('bestill-privat-form').observe('submit', function(e){
       if(this.down('#nextpage')){
       var nextpage = this.down('#nextpage');
       var defNextPage = nextpage.getValue();
       }
       var em = this.down('#email');
       if($('sent-msg')){ $('sent-msg').remove(); }
       Event.stop(e);  
        var err=0;
        var errMsg= new Array();
        var f = Event.element(e);

            var agreementOption = f.select('input[type="radio"]');
            agreementOption.all(function(rdo){
                 myOption = -1;
                 for (i=agreementOption.length-1; i > -1; i--) {
                   if (agreementOption[i].checked) {
                   myOption = i; i = -1;
                   }
                 }
                 if (myOption == -1) {
                   err++; errMsg.push(rdo.title);
                   return false;
                 }
            });

            f.select('input[type="text"], select, textarea').each(function(o){

                  var i = new ValidateFields(o);
                  if(o.id == 'epost' || o.id == 'email'){ 
                     if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
                     else if(!i.isEmail()){ err++; errMsg.push("alert_email"); }
                  }else if(o.hasClassName('mandatory')){
                     if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
                  }

            });

            f.select('input[name="bestill_privat_option1"]', 'input[name="bestill_privat_option2"]').each(function(chk){
                 if(!chk.checked){ 
                  err++; errMsg.push(chk.title);
                 }
            });

            f.select('input[name="bestill_green_option1"]', 'input[name="bestill_green_option2"]').each(function(chk){
                 if(!chk.checked){ 
                  err++; errMsg.push(chk.title);
                 }
            });

         if(err>0){
            if(!$('backdrop')){
            var warning = new MsgBox('<div><p>Vennligst oppgi følgende (påkrevd) informasjon:</p><strong>'+errMsg.join(", ")+'</strong></div>', 'Advarsel!', {'width':300,'height':155});
            warning.showAlert();
            }
         }else{ 
        
          var preload = new popup('preloader', new Element('div', { 'style' : 'background:url(/ishavskraft2_dev/frontend/css/loadingAnimation.gif) 50% no-repeat;color:#ffffff;font-weight:bold'}).update('loading'),{'width':'300','height':'100'});
          f.request({
             parameters: { 'ajax':'yes', 'debug':'off' },
             onLoading: function(){ preload.display(); },
             onSuccess: function(result){

              var fx = function(){
                    /** remove form, ingress and text after press submit button **/
                    $$('#bestill-privat-form, #ingress-txt, #freetext-txt').invoke('remove'); 
              };
              validateCaptchaCheck(result, { form: f, popup: preload, insertPosition: 'after', callback: fx });
       
             } 

          });
         }     
     });
 }
}
/*** Bestill Bedrift ***/
function bestillBedriftSubmit(){
 if($('bestill-bedrift-form')){  
  $('bestill-bedrift-form').observe('submit', function(e){
       if(this.down('#nextpage')){
       var nextpage = this.down('#nextpage');
       var defNextPage = nextpage.getValue();
       }
       var em = this.down('#email');
       if($('sent-msg')){ $('sent-msg').remove(); }
       Event.stop(e);  
        var err=0;
        var errMsg= new Array();
        var f = Event.element(e);
            f.select('input[type="text"], select, textarea').each(function(o){
               
               var i = new ValidateFields(o);
               if(o.id == 'epost' || o.id == 'email'){ 
                  if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
                  else if(!i.isEmail()){ err++; errMsg.push("alert_email"); }
               }else if(o.hasClassName('mandatory')){
                  if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
               }
            });
         if(err>0){
            if(!$('backdrop')){
            var warning = new MsgBox('<div><p>Vennligst oppgi følgende (påkrevd) informasjon:</p><strong>'+errMsg.join(", ")+'</strong></div>', 'Advarsel!', {'width':300,'height':155});
            warning.showAlert();
            }
         }else{ 
          var preload = new popup('preloader', new Element('div', { 'style' : 'background:url(/ishavskraft2_dev/frontend/css/loadingAnimation.gif) 50% no-repeat;color:#ffffff;font-weight:bold'}).update('loading'),{'width':'300','height':'100'});
          f.request({
             parameters: { 'ajax':'yes', 'debug':'off' },
             onLoading: function(){ preload.display(); },
             onSuccess: function(result){
                  validateCaptchaCheck(result, { form: f, popup: preload } );
             }             
          });
         }     
     });
 }
}
/*** Contact form ***/
function contactUsSubmit(){
 if($('contact-us-form')){  
   
   
  $('contact-us-form').observe('submit', function(e){
       if(this.down('#nextpage')){
       var nextpage = this.down('#nextpage');
       var defNextPage = nextpage.getValue();
       }
       var em = this.down('#email');
       if($('sent-msg')){ $('sent-msg').remove(); }
       Event.stop(e);  
        var err=0;
        var errMsg= new Array();
        var f = Event.element(e);
            f.select('input[type="text"], select, textarea').each(function(o){
               var i = new ValidateFields(o);
               if(o.id == 'epost' || o.id == 'email'){      
                  if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
                  else if(!i.isEmail()){ err++; errMsg.push("alert_email"); }
               }else if(o.hasClassName('mandatory')){
                  if(i.isBlank() || o.value == o.title){ err++; errMsg.push(o.title); }
               }
            });
         if(err>0){
            if(!$('backdrop')){
            var warning = new MsgBox('<div><p>Vennligst oppgi følgende (påkrevd) informasjon:</p><strong>'+errMsg.join(", ")+'</strong></div>', 'Advarsel!', {'width':300,'height':155});
            warning.showAlert();
            }
         }else{ 
         
          var preload = new popup('preloader', new Element('div', { 'style' : 'background:url(/ishavskraft2_dev/frontend/css/loadingAnimation.gif) 50% no-repeat;color:#ffffff;font-weight:bold'}).update('loading'),{'width':'300','height':'100'});
          f.request({
             parameters: { 'ajax':'yes', 'debug':'off' },
             onLoading: function(){ preload.display(); },
             onSuccess: function(result){
                  validateCaptchaCheck(result, { form: f, popup: preload });
             }           
          });
         }     
     });
 }
}
function validateCaptchaCheck(result, opt){

          var resTxt = result.responseText,
              conf = opt || {},
              json = {},
              insertOpt = {},
              preload = conf.popup,
              f = conf.form;
              try {
                json = resTxt.evalJSON();    
              }catch(e){};

              Recaptcha.reload();
              if( json.error === true){
                  preload.div.setStyle('background: none repeat scroll 0% 0% rgb(205, 231, 244); z-index: 999; width: 300px; height: auto; color:red;overflow: auto; border: 4px solid #ffffff').update('<p style="text-align:center;padding:10px;">' + json.errorMessage + '</p>');
                  preload.alertBox('Error');
              }else{
                  insertOpt[ conf.insertPosition || 'bottom' ] = resTxt;
                  f.insert(insertOpt);
                  preload.destroy(); 
                  f.reset();
                  if( typeof(conf.callback) == 'function' ){
                         conf.callback.call();
                  }
              }
     

}
var ValidateFields = new Class.create({
    initialize : function(input){ 
        this.inp = input;
        this.error = 0;
        this.warningText = input.title;
        this.form = input.up('form');
        this.label = $$('label[for="'+input.id+'"]')[0];
        this.stringVal = input.getValue().toString();
        this.rules = new Array();
        this.rules['number'] = '^(\d)+\.?,?\d+$';
        this.rules['email'] = '^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$';
        this.rules['date'] = '^(\d{1,2}-\d{1,2}-\d{4})$';
    },
    ruleCheck : function(){ 
        var error = 0;
     
        if(this.inp.hasClassName('mandatory')){
           if(this.isBlank()){
             error++;
             this.showError();
           }else{
            if(this.inp.hasClassName('number') && !this.isNumber()){ error++; this.showError(); }
            else if(this.inp.hasClassName('email') && !this.isEmail()){ error++; this.showError(); }
            else if(this.inp.hasClassName('date') && !this.isDate()){  error++; this.showError(); }
           }
        }else{
           if(!this.inp.getValue().blank()){ 
               if(this.inp.hasClassName('number') && !this.isNumber()){ error++; this.showError(); }
               else if(this.inp.hasClassName('email') && !this.isEmail()){ error++; this.showError(); }
               else if(this.inp.hasClassName('date') && !this.isDate()){  error++; this.showError(); }
               else { error=error; }
           }
        }
       return error;
    },
    isBlank : function(){
        return this.stringVal.blank();
    },
    isNumber : function(){ 
     return (/(\d)+\.?,?\d+$/).test(this.stringVal);
    },
    isEmail : function(){ 
       return (/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/).test(this.stringVal)
    },
    isDate : function(){
       return (/^(\d{4}-\d{2}-\d{2})$/).test(this.stringVal);
    },
    isMobile : function(){
       return (/(?:^$)|(?:^(?:\+\d{2}|00\d{2})?[ ]?[1-9]{1}[0-9 ]{7,}$)/).test(this.stringVal);
    },
    showError : function(){
        var input = this.inp;
        var label = this.label;
        var errMsg = input.title || 'error'; 
        
       if(label){
        if(!$('error_'+input.id)){
          var msg = '<label id="error_'+input.id+'" for="'+input.id+'" class="warning">'+errMsg+'</label>';
          label.hide().insert({'after' : msg });
        }
         this.inp.observe('focus', function(event){
            if($('error_'+input.id)){ $('error_'+input.id).remove(); }
                label.show();
        });
       }
    }    
});

/***** Open new window *****/
function openNewWindow() {
   $$('a[rel="external"]').each(function(link){
     if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
     link.writeAttribute('target','_blank');
     link.writeAttribute('rel','nofollow');
     } 
   });
   $$('a[rel="top"]').each(function(link){
     if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
     link.writeAttribute('target','_top');
     }
   });
}
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 = 'cal_date'+(obj.id.split("_")[1]); 
     obj.observe("click", imgCalendar_Click.bindAsEventListener(this, input));
   });
   var dateBox = $$("input[id^='cal_date']");
   if(dateBox){
        dateBox.each(function(obj){
            obj.observe('keypress', function(e){ Event.stop(e); });
        });
   }
}



/***** Invoice address *****/
function invAddress(){
 
 var invAddr = $$("input[id^='inv-addr-toggle']");
 var invAddrFields = $$(".inv-addr");
 var invAddrMandatory = $$(".inv-addr input");

if (invAddr) {
    invAddr.each(function (i) {
        i.observe('click', function (e) {
            if (!this.checked) {
                invAddrFields.each(function (e) {
                    e.setStyle({
                        'display': 'block'
                    });
                    invAddrMandatory.each(function (m) {
                        m.addClassName('mandatory');
                    });

                });
            }
            else if (this.checked) {
                invAddrFields.each(function (e) {
                    e.setStyle({
                        'display': 'none'
                    });
                    invAddrMandatory.each(function (m) {
                        m.removeClassName('mandatory');
                    });
                });

            }
        });
    });
}
}

/******** Random images ********/
function random_imglink(){

var random_div = $$(".random-tips");
  if(random_div){
    random_div.each(function(i){

    var images = [["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_belysning.jpg", "Sparetips belysning", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_fryser.jpg", "Sparetips fryser", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_kjoleskap.jpg", "Sparetips kjøleskap", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_Komfyr.jpg", "Sparetips komfyr", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_mikro.jpg", "Sparetips mikro", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_oppvarming.jpg", "Sparetips oppvarming", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_Oppvaskmaskin.jpg", "Sparetips oppvaskmaskin", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_PC.jpg", "Sparetips PC", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_Stovesuger.jpg", "Sparetips støvsuger", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_torketrommel.jpg", "Sparetips tørketrommel", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_TV.jpg", "Sparetips TV", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_varmtvann.jpg", "Sparetips varmtvann", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"],
                 ["/ishavskraft2_dev/frontend/css/random_banner/Sparetips_Vaskemaskin.jpg", "Sparetips Vaskemaskin", "/wsp/ishavskraft2_dev/frontend.cgi?func=publish.show&amp;table=PUBLISH&amp;publish_id=17&amp;func_id=39&amp;active=39", "random_header"]
                 ]
    
    var randomnumber = Math.floor(Math.random()*(images.length)) 
    
    var image_src = images[randomnumber][0]; /*img*/
    var image_alt = images[randomnumber][1]; /*alt*/
    var image_link = images[randomnumber][2]; /*link*/
    var image_heading = images[randomnumber][3]; /*h4*/
    i.innerHTML = '<h4><a href="' + image_link + '" title="' + image_alt + '">' + image_heading + '</a></h4><a href="' + image_link + '" title="' + image_alt + '"><img src="' + image_src + '" alt="' + image_alt + '" /></a>';

    });
  }   
}


/**************** Image rotation ******************/
function imagesRotation(){
   if($$('p[rel="front-banner"]').length > 0){
   /*if($$('img[rel="front-banner"]').length > 0){*/
   var url = '/wsp/ishavskraft2_dev/frontend.cgi?func=frontend.show&template=banner_rotation_ajax&debug=off';
   var div = $('banner');
   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){                 
                  if (obj.IMG != '') { /** Show image **/
                    var p = new Element('p', {"duration" : obj.DURATION, "rel": "front-banner", "class":"rotation-image"}).hide();
                    var img = new Element('img', {"class": "rotation-image ad", "src": '/ishavskraft2_dev'+obj.IMG, "alt": obj.TXT });
                  }
                  else { /** Show flash **/
                    var p = new Element('p', {"duration" : obj.DURATION, "rel": "front-banner", "class":"rotation-image rotation-flash"}).hide();
                    var img = new Element('object', {"class": "rotation-image ad", "width": "962", "height": "396", "classid": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "codebase": "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"});
                    var param1 = new Element('param', {"name": "wmode", "value": "transparent"});
                    var param2 = new Element('param', {"name": "src", "value": "/ishavskraft2_dev"+obj.SWF});
                    var embed = new Element('embed', {"src": "/ishavskraft2_dev"+obj.SWF, "width": "962", "height": "396", "wmode": "transparent", "quality": "high", "bgcolor": "#ffffff", "name": "campaign", "allowScriptAccess": "sameDomain", "type": "application/x-shockwave-flash", "pluginspage": "http://www.macromedia.com/go/getflashplayer"});                         
                    img.insert({bottom:param1}); 
                    img.insert({bottom:param2});
                    img.insert({bottom:embed}); 
                  } 

                  p.insert({bottom:img});
                  $('banner').insert({bottom:p});
                 });
        var i=0;
        if(j.length>0){
       new PeriodicalExecuter(function(pe){
           var p = $$('p.rotation-image');
           var duration = Math.round((parseFloat(isNaN(p[0].readAttribute("duration")) ? 0 : p[0].readAttribute("duration")) / 10)*10) > 0 ? parseFloat(p[0].readAttribute("duration")) : defaultDuration;
           if(!p[0]){ pe.stop(); }
            i++;
            if(i==0){ $(p[0]).appear(); }
            if(i == (duration * 10)-10){
               (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;
              $('banner').insert({bottom:img.hide()});
              $(p[0]).remove();
              i=-1;
            }
        },0.1);
        }
       }
   });
}
}
function iso2utf8(str) {
  replaceStr = [{"char":"æ", "replacement":"&aelig;"},{"char":"ø", "replacement":"&oslash;"},{"char":"å", "replacement":"&aring;"},{"char":"Æ", "replacement":"&AElig;"},{"char":"Ø", "replacement":"&Oslash;"},{"char":"Å", "replacement":"&Aring;"}];
  replaceStr.each(function(s){
    str = str.gsub(new RegExp(s.char), s.replacement);
  });
  return str;
}

window.onload=function(){
   /*imagesRotation(); */ /*Deactived - Use random choice of banner instead! */
}


/**** Add unit ****/
function addGroupTable(){
       var elem = $$(".addGroupTable");
       if(elem){
           elem.each(function(obj){
                obj.observe('click', function(e){
                addUnitToForm($('form_id').getValue());            
                //return false;
                Event.stop(e);
                });
           });
       }
}

function addUnitToForm(form_id) {
  /*
function: addUnitToForm()
Add unit to form.


*/

  var form_id = $F('form_id');
  var table = document.getElementById('add-unit');
  var BtnDiv = document.getElementById('bestill-privat-more-unit-frm');

  NOF_GROUPS = ++NOF_GROUPS;
  NOF_GROUP_ITEMS[NOF_GROUPS] = 0;
  var unitnumberLabel = '<div class="unitNumber">' + freetext.unit_txt + ' ' + NOF_GROUPS + '</div>';

//alert(NOF_GROUPS);
  var inn = '<button id="remove-unit-btn" type="button"><img src="/ishavskraft2_dev/frontend/css/remove-sign.gif" alt=""'+' class="btn-sign"><span>';
      inn += freetext.remove_unit + '</span></button>';
  var removeBtn = new Element('a', { id:'remove-unit-button', title: freetext.remove_unit }).update(inn).observe('click', function(e){
     deleteUnitGroup(e.element(), freetext.delete_unit);
     e.stop();
  });
  
  
  if (NOF_GROUPS == 2) {$(BtnDiv).insert({ 'top': removeBtn});}        var unitGroup = '<div class="yui-g unit-group">'   
                           + '<div class="yui-u first">'
                             + '<p class="unit-addr">'
                                 +'<label for="unit-address">' + freetext.unit_address + '</label><span class="required">' + freetext.asterisk + '</span>'
                                 +'<input type="text" class="unit-address mandatory" name="unit_address'+ NOF_GROUPS +'" title="unit_address">'
                             +'</p>'  
                             +'<div class="yui-gf unit-addr">'
                               +'<div class="yui-u first unit-zip">'
                                 +'<label for="unit-zipcode">' + freetext.unit_zipcode + '</label><span class="required">' + freetext.asterisk + '</span>'
                                 +'<input type="text" class="unit-zipcode mandatory" name="unit_zipcode'+ NOF_GROUPS +'" title="unit_zipcode">'
                               +'</div>'
                               +'<div class="yui-u unit-cit">'
                                 +'<label for="unit-city">' + freetext.unit_city + '</label><span class="required">' + freetext.asterisk + '</span>'
                                 +'<input type="text" class="unit-city mandatory" name="unit_city'+ NOF_GROUPS +'" title="unit_city">'
                               +'</div>'
                             +'</div> '    
                            +'<p class="unit-meter-id">'
                                +'<label for="meter">' + freetext.unit_meter_id + '</label>'
                                +'<input type="text" name="meter_id'+ NOF_GROUPS +'" class="meter-id">'
                            +'</p>'                
                           +'</div>'

                         +'<div class="yui-u">'
                             +'<p>'
                                 +'<label>' + freetext.unit_meter + '</label>'
                                 +'<input type="text" class="meter-stand" name="unit_meter'+ NOF_GROUPS +'" title="unit_meter">'
                             +'</p>'
                             +'<p class="meter-caption-more">'
                                 +'<span class="meter-caption">' + freetext.meter_caption_more + '</span>'
                             +'</p>'
                             +'<p class="unit-date">'
                                 +'<label>' + freetext.o_meter_date + '</label>'

+'<select name="unit'+ NOF_GROUPS +'_Day_ID" id="unit'+ NOF_GROUPS +'_Day_ID" class="calendarDateInput day-list">'  +'<option>1</option>'
                                   +'<option>2</option>'
                                   +'<option>3</option>'
                                   +'<option>4</option>'
                                   +'<option>5</option>'
                                   +'<option>6</option>'
                                   +'<option>7</option>'
                                   +'<option>8</option>'
                                   +'<option>9</option>'
                                   +'<option>10</option>'
                                   +'<option>11</option>'
                                   +'<option>12</option>'
                                   +'<option>13</option>'
                                   +'<option>14</option>'
                                   +'<option>15</option>'
                                   +'<option>16</option>'
                                   +'<option selected="selected">17</option>'
                                   +'<option>18</option>'
                                   +'<option>19</option>'
                                   +'<option>20</option>'
                                   +'<option>21</option>'
                                   +'<option>22</option>'
                                   +'<option>23</option>'
                                   +'<option>24</option>'
                                   +'<option>25</option>'
                                   +'<option>26</option>'
                                   +'<option>27</option>'
                                   +'<option>28</option>'
                                   +'<option>29</option>'
                                   +'<option>30</option>'
                                   +'<option>31</option>'  +'</select>'
+'<select name="unit'+ NOF_GROUPS +'_Month_ID" id="unit'+ NOF_GROUPS +'_Month_ID" class="calendarDateInput month-list">'  +'<option value="1">Jan</option>'
                                   +'<option value="2">Feb</option>'
                                   +'<option value="3">Mar</option>'
                                   +'<option value="4">Apr</option>'
                                   +'<option value="5">Mai</option>'
                                   +'<option value="6">Jun</option>'
                                   +'<option value="7">Jul</option>'
                                   +'<option selected="selected" value="8">Aug</option>'
                                   +'<option value="9">Sep</option>'
                                   +'<option value="10">Okt</option>'
                                   +'<option value="11">Nov</option>'
                                   +'<option value="12">Des</option>'  +'</select>'
+'<select name="unit'+ NOF_GROUPS +'_Year_ID" id="unit'+ NOF_GROUPS +'_Year_ID" class="calendarDateInput year-list">'     +'<option selected="selected" value="2010">2010</option>'    +'<option value="2009">2009</option>'    +'<option value="2008">2008</option>'    +'<option value="2007">2007</option>'    +'<option value="2006">2006</option>'    +'<option value="2005">2005</option>'    +'<option value="2004">2004</option>'    +'<option value="2003">2003</option>'    +'<option value="2002">2002</option>'    +'<option value="2001">2001</option>'    +'</select>'
                          
                             +'</p>'
                         +'</div>'
                       +'</div> '
                         +'<span class="meter-caption meter_stand">' + freetext.meter_id_caption + '</span>';

  var prod_arrow;
  prod_arrow = unitnumberLabel+unitGroup;

  var div = new Element("div", {'id':'cat_'+ NOF_GROUPS});

  if (NOF_GROUPS <= 10) {
    div.writeAttribute('class', "each_cat");
    div.insert({'bottom': prod_arrow});
    $(table).insert({ 'bottom': div}); 
  }
  else
  {
    alert('limit 10!'); /* limit 10 units*/
    NOF_GROUPS = --NOF_GROUPS;
  }

}


function deleteUnitGroup(a, msg, ajax){
/*
function: deleteUnitGroup()
Delete unit group from form.


*/
  if(confirm(msg)){
 
   //alert(NOF_GROUPS);

    var div = $('cat_' + NOF_GROUPS);
    var removeButton = $('remove-unit-button');


    if(typeof(ajax) != 'undefined' && ajax==1){
       new Ajax.Request(a.href+'&debug=off',{ method:'get', onSuccess: function(){ div.remove(); } });
    }else{
       div.remove(); 
       NOF_GROUPS = --NOF_GROUPS;
       if (NOF_GROUPS < 2) {
          removeButton.remove();
       } 
       
    }
  }
  return false;
}

/*** Notify ***/
function showNotify(){  
    $$('.show-notify').each(function(c){  
          c.observe('click', function(e){
           
             var e = $('notify');         
             if(e.style.display == 'block'){  
                e.setStyle({display: 'block'});  
             }else{  
                e.setStyle({display: 'block'});  
             } 
          });
       }  
    );  
 }  

function hideNotify(){  
    $$('.hide-notify').each(function(c){  
          c.observe('click', function(e){
           
             var e = $('notify');         
             if(e.style.display == 'none'){  
                e.setStyle({display: 'none'});  
             }else{  
                e.setStyle({display: 'none'});  
             } 
          });
       }  
    );  
 }  