/*------------ 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
// 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&zipcode=' + zipcode + '&languagecode=' + languagecode + '&language=' + languagecode;
  var url = '/wsp/jfknudtzen/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 = document.getElementById(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;
}

/*-------- Use with template skjema_support ----------*/
var emailID = 'email'; // the element id of Email radio
var epostID = 'e_post';
var telID = 'telephone';
document.observe('dom:loaded', function(){

     $$('#frm_link_guide').each(
       function (el) { 
         el.observe('submit', guiding );
       }
     );

  ajaxSearch();

  if($("contact")){
  $("contact").observe('submit', function(e){
    if(!checkInputBlank(this)){
      Event.stop(e);
    }else{
      setTOEmail();
    }
  });
  }
   if($('search-form')){
      $('search-form').observe('submit', function(e){
         if(this.elements['namenumber'].value.strip()==''){
           alert("search_alert");
           Event.stop(e);
         }
      });
   }

});

function guiding(){
 var selIndex = $('link_guide').selectedIndex;
 var txtvalue = $('link_guide').options[selIndex].value;
 if(txtvalue != ''){
  $('frm_link_guide').action = txtvalue;
 }
}

function numberOnly(elem){
  if(isNaN(elem.value.strip())){
    return false;
  }else{
    return true;
  }
}

function checkInputBlank(f) {
  
  var elem = f.elements;
  for( var i=0; i < elem.length; i++ ){

    if(elem[i].type=='text' && elem[i].title == "mandatory_field" && elem[i].value.strip()==''){
        alert("input_is_empty\n"+$(elem[i]).previous("label").innerHTML.stripTags());
        return false;
  
    }else{
    
      if(elem[i].id == telID) {

        if(!numberOnly(elem[i])){
          alert("input_num_only\n"+$(elem[i]).previous("label").innerHTML.stripTags());
          return false;
        }
      }

      if(elem[i].id==epostID){
        epost = elem[i];
      }

    }
  }
  return emailPatternCheck(epost);

}

function setTOEmail(){

  var form = $('contact');
  var email = form.getInputs('radio', 'email');
  var to = form.elements['to'];
  $(email).each( function(rdo){
                   if(rdo.checked) {
                     to.value = rdo.value;
                  }
                });
}

function emailPatternCheck(input){
  var pttr = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
  var reg = new RegExp(pttr);
  if(!input.value.strip().match(reg)){
    alert("invalid_email_pattern");
    return false;
  }
  return true
}

  function ChangeColor(tableRow, highLight){
   if (highLight){
    tableRow.style.backgroundColor = '#dedede';
   }else{
    tableRow.style.backgroundColor = 'white';
   }
  }

  function DoNav(theUrl){
   document.location.href = theUrl;
  }
 function DoNavNewWin(theUrl){
  mywin = window.open(theUrl);
 }

/* --- AJAX search --- */

// The text box from which the search is triggered
var inputBoxId = 'namenumber';

// Results come from this template
var ajaxResultTemplate = 'category_search';

// Results go in this element
var ajaxResultContainerId = 'ajax_table';

// It the above elemnt does not exist it is created above this one
var insertResultBeforeId = 'main-content';

// Global variable for the request object
var searching; 



// this is the 'please wait' html
var preloader = '<img id="search_preloader" src="/jfknudtzen/frontend/files/CONTENT/loadingAnimation.gif" alt="loading">';

// this is the error message in case somethinng goes wrong
var AjaxErrorMsg = "ajax_error";

// this sets a delay for the firing of the search
var searchTimer = 0;

// last searched word, so we do not fire the same search twice
var lastSearch;

function ajaxSearch(){

  var searchBox = $(inputBoxId);

  if (searchBox) {

    var resultContainer = $(ajaxResultContainerId);
    if ( !resultContainer ) {
      // Create container if not exists
      $(insertResultBeforeId).insert( { top: '<div id="' + ajaxResultContainerId +'"></div>' } );
      resultContainer = $(ajaxResultContainerId);
    }

    // Attach event listener
    searchBox.observe('keyup', function() {
      clearTimeout(searchTimer);
      searchTimer = setTimeout('doSearch()', 300);
    } );
  }
}

function doSearch () {
  // Pull the search results from the server and fill the
  // resultContainer

  var searchBox = $(inputBoxId);
  var resultContainer = $(ajaxResultContainerId);
  var searchString = searchBox.value.strip();
  if (searchString.length > 2) {

    if ( searching != null ) {
      searching.transport.abort();
    }
    if ( lastSearch == searchString ) {
      return;
    }

    lastSearch = searchString;
    var data = searchBox.name +'='+ escape(searchString) +'&ajax=yes';  var url = '/search/?template='+ ajaxResultTemplate +'&'+ data +'&debug=off';  searching = new Ajax.Request(url, {

      method: 'GET',
      onSuccess: function(transport) {
        resultContainer.innerHTML = transport.responseText;
        if(transport.responseText)
        {
          var hits = transport.responseText.match("no_hits");
          if (hits == 'no_hits') {
            pageTracker._trackPageview('/searchresult?search='+searchString+'&category=No_hits');
          }
          else {
            pageTracker._trackPageview('/searchresult?search='+searchString+'&category=Hits');
          }
        }
      },
      onError : function(){
        resultContainer.innerHTML = AjaxErrorMsg;
      }
    });

    // Let the user know that something is happening
    resultContainer.innerHTML = preloader;
    resultContainer.setStyle( { display: 'block' } );

  } else {

    resultContainer.innerHTML = '';
    resultContainer.setStyle( { display: 'none' } );
  }
}

