/*------------ 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;
}

/*------------ Used in templates:  kurs_skjema ----------*/
function check_courseinfo(){
    var contact     = document.course.elements['contact'].value;
    var address     = document.course.elements['address'].value;
    var zipcode     = document.course.elements['zipcode'].value;
    var city        = document.course.elements['city'].value;
    var telephone   = document.course.elements['telephone'].value;
    var email       = document.course.elements['email'].value;
    var cc          = document.course.elements['cc'].value;


    //-----Check for content-----
    if (!contact) {
      window.alert("Vennligst oppgi kontaktperson");
      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 (!telephone) {
      window.alert("Vennligst oppgi telefonnummer");
      return false;
    }

    //-----Check for valid content-----
    if(!validate_zipcode_no(zipcode)){
      return false;
    }
    else if(email != "" && !validate_email(email)){
      return false;
    }
    else if(!validate_telephone(telephone)){
      return false;
    }

    //-----Send copy of email to user-----
    if(email != ""){
      document.course.elements['cc'].value = email;
    }
   
    //-----Return true if everything is ok-----
    return true;
}

/*------------ Used in templates:  kontakt_skjema ----------*/

function check_contactinfo(){
    var contact     = document.contact.elements['contact'].value;
    var companyname = document.contact.elements['companyname'].value;
    var email       = document.contact.elements['from'].value;
    var info        = document.contact.elements['contact_info'].value;


    //-----Check for content-----
    if (!contact) {
      window.alert("Vennligst oppgi kontaktperson");
      return false;
    }
    else if (!email) {
      window.alert("Vennligst oppgi epostadresse");
      return false;
    }
    else if (!info) {
      window.alert("Vennligst oppgi hva henvendelsen gjelder");
      return false;
    }

    //-----Check for valid content-----
    if(!validate_email(email)){
      return false;
    }
   
    //-----Return true if everything is ok-----
    return true;
}

/*------------ Used in templates:  competition_form ----------*/
function check_competition_info(){

    var contact       = document.contact.elements['contact'].value;
    var email         = document.contact.elements['from'].value;
    var mand_error    = document.contact.elements['mand_error'].value;
    var email_error   = document.contact.elements['email_error'].value;

    //-----Check for content-----
    if (!contact) {
      window.alert(mand_error);
      return false;
    }
    else if (!email) {
      window.alert(mand_error);
      return false;
    }

    //-----Check for valid content-----
    if(!validate_email_language(email)){
      window.alert(email_error);
      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_language(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 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;
  }
}

function check_rest(quantity,stock){
 if(quantity > stock){
  return confirm('Det er kun '+stock+' på lager. Vil du allikevel bestille?');
 }
 return true;
}


function confirm_delete() {

  return confirm('Slett varekurv / varukorg?');

}


function getElements() {
                  
  var aElems = new Array();
        
  $$('.formline').each(
    function(oCheck) {
                            
      if (oCheck.checked) {
        var sQTY = $('a_'+oCheck.id).value;
        var sPID = $(oCheck.id).value;

        var strElem = sPID + '=' + sQTY;
                                  
        aElems.push(strElem);
      }
    }
  );
          
  var sJoined = aElems.join(",");
  $('elems').value=sJoined;        
  $('frm_shoplist').submit();
}

 function swap(obj){
  $('yellow_basket').show();
  $('yellow_basket').fade({ duration:3.0, from:1.0, to:0.0 });
/*  new Effect.Opacity('yellow_basket', { from: 1.0, to: 0.0, duration: 2.5 });*/
 }

document.observe('dom:loaded',function(){
  confirmDelete();
  updateQty();
  viewBasket();
  togglingInput();
  toggle_input();

  if ($('frm_user_addrs')) {
     $('frm_user_addrs').observe('submit',valid_form);
  }
  if ($('frm_compaddrs_addrs')) {
     $('frm_compaddrs_addrs').observe('submit',valid_company_form);
  }
  if ($('frm_unregister_orders')) {
     $('frm_unregister_orders').observe('submit',valid_unregis_order);
  }
  if ($('copy_address')) {
     $('copy_address').observe('click',copy_address);
  }
  if ($('orders')) {
     $('orders').observe('submit',valid_regis_order);
  }

});
function valid_regis_order(e){
   Event.stop(e);

   var id = 'CUSTOMER_REF';
   var err_msg = "Obligatorisk felt ikke utfylt";
   if($(id).value.blank()){
      var err = new Element('span',{ 'class' : 'error'}).update(err_msg);
      if(!$(id).next('span.error')){
        $(id).insert({'after': err});
        //$(id).previous('label').addClassName("error");
       }
    }else{
       remove_err(id);
       $('orders').submit();
    }
}

function copy_address(){
  if($('copy_address').checked){
     if(!$('o_del_address').getValue().blank()){
       $('o_bill_address').value = $('o_del_address').value;
     }
     if(!$('o_del_zipcode').getValue().blank()){
       $('o_bill_zipcode').value = $('o_del_zipcode').value;
     }
     if(!$('o_del_city').getValue().blank()){
       $('o_bill_city').value = $('o_del_city').value;
     }
  }
}

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; }});
     });
  }
}
  function viewBasket(){
    var menu;
    if($('green')){        
       $('green').observe('mouseover', function(e){
         if($('green_text')){
           if($('basket_box')){
           if($('productnu')){
            $('productnu').blur();
           }
            $('basket_box').show();
            }
         }
       });
       $('green').observe('mouseout', function(e){
         if($('green_text')){
           if($('basket_box')){
            $('basket_box').hide();
           if($('productnu')){
            $('productnu').focus();
           }
            }
         }
       });

    }  
    if($('yellow')){        
       $('yellow').observe('mouseover', function(e){
           if($('basket_box')){
           if($('productnu')){
            $('productnu').blur();
           }
            $('basket_box').show();
            }
       });
       $('yellow').observe('mouseout', function(e){
           if($('basket_box')){
            $('basket_box').hide();
           if($('productnu')){
            $('productnu').focus();
           }
           }
       });
    }  

  }

function testing(){
 alert('Hei');
}
function shop_effect(){
 new Effect.Fade('green', {afterFinish: function (obj) { 
     new Effect.Appear('yellow'); 
    }
 });
}

function confirmDelete(){
  var a = $$('a[rel="confirm"]');
  if(a){
    a.each(function(e){
       e.observe('click', function(o){
         var msg = "Vil du slette?";
           if(!confirm(msg)){
             Event.stop(o);
            }
       });
    });
  }
}
function showQtyResult(html){
     $("order_loop").replace(html);
     updateQty();

}
function updateQty(){
  
  var a = $$('a[rel^="line_"]');
     if(a){
        var preload = new Element('img', { id:"updating", src : "http://medinor.webon.net/medinor2/frontend/files/updating.gif"});
        //var preload = '<strong>Oppdatering...</strong>';
        var warning = 'Vennligst oppgi nummer';
        a.each(function(o){
          var q = $(o.readAttribute("rel"));
          o.observe('click', function(e){
              var val = q.value;
              Event.stop(e);
              if(isNaN(val)){
                 alert(warning);
                 q.focus();
              }else{
              new Ajax.Request(o.href+'&quantity='+val+'&ajax=yes', {
                  method : 'get',
                  onCreate : function(){ /*$("order_loop").update(preload);*/ q.replace(preload); },
                  onComplete : function(resp){ showQtyResult(resp.responseText); }
              });
             }
          });
        });
     }
     preventEnterKey();
}
function preventEnterKey(){
var f = $("orders");
var submitOk = true;
  if(f){
     f.observe('submit', function(e){   
      if(!submitOk){ Event.stop(e); }
     });

    var inp = f.select('#basket-lines input[name="quantity"]'); // function to prevent submit by pressing ENTER when focusing in quantity boxes
    inp.each(function(o){
         o.observe('focus', function(e){
              submitOk=false;
         });
         o.observe('blur', function(e){
              if(!isNaN(Event.element(e).getValue())){submitOk = true;}else{ alert('Vennligst oppgi nummer'); Event.element(e).focus(); }
         });
    })
  }
}
function check_newsletterinfo(){
    
  var contact     = document.contact.elements['contact'].value;
  var email       = document.contact.elements['to'].value;

  if (!contact) {
   window.alert("Vennligst oppgi kontaktperson");
   return false;
  }
  else if (!email) {
   window.alert("Vennligst oppgi epostadresse");
   return false;
  }
  else if(!validate_email(email)){
   return false;
  }
}
function newspop(url)
 {
  var newwindow;
  newwindow=window.open(url,'','height=600,width=800,resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no,location=no');
  if (window.focus) {newwindow.focus()}
   return false;
 }
function toggle_input()
{
 var rdo = $$('input[name="typeuser"]');
 if(rdo){
   rdo.each(function(r){
    r.observe('click',function(e){
      var o = this;
      var div = $('view-student');
      var txtbox = div.select('input[type="text"]');
      if(o.id == "student"){
            div.show();
            $('student_legend').show();
            $('privat_legend').hide();
            txtbox.each(function(t){
              t.removeAttribute('disabled');
            });
       }else{
            div.hide();
            $('student_legend').hide();
            $('privat_legend').show();
            txtbox.each(function(t){
              t.writeAttribute({'disabled':'disabled'});
            });
       }
       
    })
   })
 }
}
function valid_form(e){
   Event.stop(e);
   var status1 =  show_error('user_firstname','Skriv inn Fornavn');
   var status2 =  show_error('user_lastname','Skriv inn Etternavn');
   var status3 =  show_error('user_email','Ugyldig E-post');
   var status4 =  show_error('user_date','Ugyldig Fødselsdato');
 if($('student').checked){
   var status5 =  show_error('user_universitet','Skriv Universitet/Høyskole');
   var status6 =  show_error('user_studie','Skriv Studie/Fagområde');
   var status7 =  show_error('user_kull','Skriv Årskul');
 }else{
   var status5 =  true;
   var status6 =  true;
   var status7 =  true;
 }
   var status8 =  show_error('user_address','Skriv Adresse');
   var status9 =  show_error('user_zipcode','Ugyldig Postnummer');
   var status10 =  show_error('user_city','Skriv Poststed');

   if((status1)&&(status2)&&(status3)&&(status4)&&(status5)&&(status6)&&(status7)&&(status8)&&(status9)&&(status10)){   
     $('frm_user_addrs').submit();
   }

}
function valid_company_form(e){
   Event.stop(e);
   var status1 =  show_error('addressname','Skriv inn Adressenavn');
   var status2 =  show_error('companyname','Skriv inn Firma/Navn');
   var status3 =  show_error('address','Skriv inn Adressen');
   var status4 =  show_error('zipcode','Ugyldig Postnummer');
   var status5 =  show_error('city','Skriv Poststed');
   var status6 =  show_error('telephone','Ugyldig telefonr');

   if((status1)&&(status2)&&(status3)&&(status4)&&(status5)&&(status6)){   
     $('frm_compaddrs_addrs').submit();
   }

}

function show_error(id,err_msg){
 var status;
 if($(id).value.blank()){
      var err = new Element('span',{ 'class' : 'error'}).update(err_msg);
      if(!$(id).next('span.error')){
      $(id).insert({'after': err});
      $(id).previous('label').addClassName("error");
       }
      status = false;
 }else{
    if((id == 'user_date')||(id == 'user_zipcode')||(id == 'zipcode')||(id == 'telephone')){
       status = validate_number(id);
    }else if(id == 'user_email'){
       status = Validate_Email(id,$(id).value);
    }else{
       remove_err(id);
       status = true;
    }
  }
  return status;
}

function valid_unregis_order(e){
   Event.stop(e);
   var status1 =  show_unregis_error('o_company','Obligatorisk felt ikke utfylt');
   var status2 =  show_unregis_error('o_id','Obligatorisk felt ikke utfylt');
   var status11 =  show_unregis_error('o_id2','Obligatorisk felt ikke utfylt');
   var status3 =  show_unregis_error('o_bill_address','Obligatorisk felt ikke utfylt');
   var status4 =  show_unregis_error('o_bill_zipcode','Obligatorisk felt ikke utfylt');
   var status5 =  show_unregis_error('o_bill_city','Obligatorisk felt ikke utfylt');
   var status6 =  show_unregis_error('o_del_address','Obligatorisk felt ikke utfylt');
   var status7 =  show_unregis_error('o_del_zipcode','Obligatorisk felt ikke utfylt');
   var status8 =  show_unregis_error('o_del_city','Obligatorisk felt ikke utfylt');
   var status9 =  show_unregis_error('o_email','Obligatorisk felt ikke utfylt');
   var status10 =  show_unregis_error('o_contact','Obligatorisk felt ikke utfylt');
   

   if((status1)&&(status2||status11)&&(status3)&&(status4)&&(status5)&&(status6)&&(status7)&&(status8)&&(status9)&&(status10)){   
     $('frm_unregister_orders').submit();
   }
  
}

function show_unregis_error(id,err_msg){
 var status;
 var err = new Element('span',{ 'class' : 'error'}).update(err_msg);
 if($(id).value.blank()){
      if(!$(id).next('span.error')){
      $(id).insert({'after': err});
       }
      status = false;
 }else{
    if((id == 'o_id')||(id == 'o_id2')||(id == 'o_bill_zipcode')||(id == 'o_del_zipcode')||(id == 'o_tel')){
       status = validate_number(id);
    }else if(id == 'o_email'){
       status = Validate_Email2(id,$(id).value);
    }else{
       remove_err(id);
       status = true;
    }
  }
  return status;
}

function Validate_Email2(no,email_str){
  var email_filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
  return add_errormsg2(no,!email_filter.test(email_str),'E-Post adressen er ikke gyldig');   
}

function Validate_Email(no,email_str){
  var email_filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
  return add_errormsg(no,!email_filter.test(email_str),'E-Post adressen er ikke gyldig');   
}

function show_valid_error(id,err_msg){
 var status;
 if($(id).value.blank()){
      var err = new Element('span',{ 'class' : 'error'}).update(err_msg);
      if(!$(id).next('span.error')){
      $(id).insert({'after': err});
      $(id).previous('label').addClassName("error");
       }
      status = false;
   }
  return status;
}

function remove_err(id){
   if($(id).next('span.error')){
      $(id).next('span.error').remove();      
   }
   if($(id).previous('label.error')){
     $(id).previous('label').removeClassName("error");
   }
}

function validate_number(no){
  var status;
  var date_filter = /^(\d{6})$/i;
  var date_filter2 = /^(\d{9})$/i;
  var organize_filter = /^(\d{11})$/i;
  if(no == 'user_date'){
    status = add_errormsg(no,!date_filter.test($(no).value),'Date kan bare inneholde tall, 6 siffer.');   
  }
 /*
  if(no == 'o_id'){
    if(!date_filter.test($(no).value)){
      if(!organize_filter.test($(no).value)){
         status = true;   
      }else{
         status = false;
      }
    }else{
      status = false;   
    }
    status = add_errormsg2(no,status,'Date kan bare inneholde tall, 6 siffer eller 11 siffer1.');   
  }
 */

   if(no == 'o_id'){
    status = add_errormsg2(no,!date_filter2.test($(no).value),'Postnummer kan bare inneholde tall, 9 siffer.');   
  }

   if(no == 'o_id2'){
    status = add_errormsg(no,!date_filter.test($(no).value),'Postnummer kan bare inneholde tall, 6 siffer.');   
  }



  var zipcode_filter = /^(\d{4})$/i;
   if(no == 'user_zipcode'){
    status = add_errormsg(no,!zipcode_filter.test($(no).value),'Postnummer kan bare inneholde tall, 4 siffer.');   
  }
   if(no == 'o_bill_zipcode'){
    status = add_errormsg2(no,!zipcode_filter.test($(no).value),'Postnummer kan bare inneholde tall, 4 siffer.');   
  }
   if(no == 'o_del_zipcode'){
    status = add_errormsg2(no,!zipcode_filter.test($(no).value),'Postnummer kan bare inneholde tall, 4 siffer.');   
  }
  var zipcode_filter = /^(\d{4})$/i;
   if(no == 'zipcode'){
    status = add_errormsg(no,!zipcode_filter.test($(no).value),'Postnummer kan bare inneholde tall, 4 siffer.');   
  }
  var telefonr_filter = /^(\d{8})$/i;
   if(no == 'telephone'){
    status = add_errormsg(no,!telefonr_filter.test($(no).value),'Telefonr kan bare inneholde tall, 8 siffer.');   
  }
   if(no == 'o_tel'){
    status = add_errormsg2(no,!telefonr_filter.test($(no).value),'Telefonr kan bare inneholde tall, 8 siffer.');   
  }

 return status;
}

function add_errormsg(no,status,msg){
    if (status){
       remove_err(no);
       var err = new Element('span',{ 'class' : 'error'}).update(msg);
       if(!$(no).next('span.error')){
          $(no).insert({'after': err});
          $(no).previous('label').addClassName("error");
       }
       var result = false;
    }else{
       remove_err(no);
       var result = true;
    }
  return result;
}

function add_errormsg2(no,status,msg){
    if (status){
       remove_err(no);
       var err = new Element('span',{ 'class' : 'error'}).update(msg);
       if(!$(no).next('span.error')){
          $(no).insert({'after': err});
          //$(no).previous('label').addClassName("error");
       }
       var result = false;
    }else{
       remove_err(no);
       var result = true;
    }
  return result;
}