/*------------ 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
// 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/erlingsande/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;
}
var IMG_PRELOADER = '<img id="preload-img" src="/erlingsande/frontend/graphics/loadingAnimation.gif">';
var ajaxing = null;
 document.observe('dom:loaded',function() { 
	mapEffect();categoryTabMenu(); supplierDetails(); getSupplierByCat(); searchBoxFocus(); openNewWindow(); marqueeLogoInit(); marqueeLogo(); marqueeAction();
}); 
  function categoryTabMenu(){
  	if($$("a[rel='product-info']")){
            $$("a[rel='product-info']").each(function(obj) {
		$(obj).observe('click', function(event){
			setActiveLink($(this));
				if(ajaxing != null) { ajaxing.transport.abort(); if($("preloader")){ $("preloader").remove(); } }
                                new Insertion.Before($('informations'), '<div id="preloader" class="preload">'+IMG_PRELOADER+'</div>');
                                ajaxing = new Ajax.Request($(this).readAttribute("href")+'&ajax=yes',{
				method : 'get',
				onSuccess: function(res) {
					$("preloader").remove();
					$('informations').hide();
					$('informations').update(res.responseText);
					new Effect.Appear('informations');
					loadProductVendor();
				}
			});
			Event.stop(event);
		});
	});
      }
  }   
  function setActiveLink(a){
	if(a.className == '') {
  		$(a).addClassName('selected');
  	}
  	$(a).up(0).siblings().each(function(obj){
  		$(obj).down(0).removeClassName('selected');
  	});
  }
function setParentActiveLink(a) { // use differnt class in supplier_list
	if(a.className == '') {
  		$(a).addClassName('selected');
  	}
  	$(a).siblings().each(function(obj){
  		$(obj).removeClassName('selected');
  	});
}
function supplierDetails(){
	$$("a[rel='supplier-details']").each(function(obj) {
		$(obj).observe('click', function(event){
			setParentActiveLink($(this).up(0));
			if($$("#supplier-result").length > 0) {
				$("supplier-result").remove();
			}
			var url = $(this).readAttribute("href")+'&ajax=yes';
				new Insertion.After($(this),'<div id="supplier-result">'+IMG_PRELOADER+'</div>');
					new Ajax.Request(url,{
					method : 'get',
					onSuccess: function(res) {
						$("supplier-result").hide();
						$("supplier-result").update(res.responseText);
						new Effect.Appear("supplier-result");	
						openNewWindow();
					}
				});
			Event.stop(event);
		});
	});
}
function getSupplierByCat(){
	$$("a[rel='list-supplier']").each(function(obj) {
		$(obj).observe('click', function(event){
			setActiveLink($(this));
			var url = $(this).readAttribute("href")+'&ajax=yes&action=details';
			$("supplier-list").update('<li>'+IMG_PRELOADER+'</li>');
					new Ajax.Request(url,{
					method : 'get',
					onSuccess: function(res) {
						$("supplier-list").hide();
						$("supplier-list").update(res.responseText);
						new Effect.Appear("supplier-list");	
						supplierDetails();
					}
				});
			Event.stop(event);
		});
	});
}
function searchBoxFocus(){
	$("search_text").observe('click', function(){
		var val = this.value;
		this.value = this.value == "Skriv inn søketekst" ? '' : val;
	});
	$("search_text").observe('blur', function(){
		var val = this.value;
		this.value = this.value != '' ? val : "Skriv inn søketekst" ;
	});
	$("search-form").observe('submit', function(event){
		var searchTxt = this.elements['search_text'];
		if(searchTxt.value == '' || searchTxt.value == "Skriv inn søketekst" ) {
			alert("Tom verdi. Vennligst skriv inn ditt søkeord.");
			searchTxt.clear();
			searchTxt.focus();
			Event.stop(event);
		}		
	});
}
var timeout = 0;
var right = 0;
var step = 2; // speed
var first;
var firstWidth;
var marqueeContainer;

function marqueeLogoInit() {

  first = $('scrolling').descendants()[0];
  firstWidth = first.getWidth();
  marqueeContainer = $('scrolling');
  new Insertion.Bottom('scrolling', marqueeContainer.innerHTML ); 
}

function marqueeLogo() {

  right += step;

  if ( right >= firstWidth+2 ) {
    right = 0;
    first.remove();
    marqueeContainer.appendChild( first );
    marqueeContainer.setStyle({right:right+'px'});
    first = marqueeContainer.descendants()[0];
    firstWidth = first.getWidth();
  
  } else {
    marqueeContainer.setStyle({right:right+'px'});
  }
  timeout = setTimeout("marqueeLogo()", 60);
}

function marqueeAction(){
	$("scrolling").observe("mouseover", function(){
		clearTimeout(timeout);
	});
	$("scrolling").observe("mouseout", function(){
		marqueeLogo();
	});        
}
function tooltip(e, option){
       var xPos = option.xpos|| Event.pointerX(e);
       var yPos = option.ypos || Event.pointerY(e);
           if($("tooltip")){ $("tooltip").remove(); }
       var div = new Element('div', {id : "tooltip"});
           div.setStyle({position:'absolute', left : xPos, top : yPos});
           $(div).insert( option.html, {position : 'bottom'});
           $(document.body).insert(div, { position : 'bottom'});
           
}
function openNewWindow(){
	$$("a[rel='external']").each(function(obj) {
		$(obj).observe('mouseover', function(event){
			this.target="_blank";
		});
		$(obj).observe('mouseout', function(event){
			$(this).removeAttribute("target");
		});
	});
}
function loadProductVendor(){
   $$('a[rel="product-vendor"]').each(function(a){
   	$(a).observe('click', function(event){
   	 	var div = $(this).up('h1').next('div[class="ingress-txt"]');
   	 	var url = this.href+'&ajax=yes&action=details';      
   	 	$(div).update(IMG_PRELOADER);
   	 	new Ajax.Request(url,{ method : 'get',	onSuccess: function(res) { $(div).update('<ul class="supplier-list">'+res.responseText+'</ul>');  supplierDetails();} });
   	 	Event.stop(event);
   	});
   });
}
/**** Use with template about_us_contact_form ***/
var emailID = 'email'; // the element id of Email input
var postID = 'post';
var telID = 'telephone';
document.observe("dom:loaded", function(){
        if($("contact_form")){
	$("contact_form").observe('submit', function(e){
		if(!checkInputBlank(this)){
			Event.stop(e);
		}else{
			setCCEmail();
		}
	});
	}
});
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].value.strip()==''){
				alert("Vennligst fyll inn :\n"+$(elem[i]).previous("label").innerHTML.stripTags());
				return false;
		}else{
			if(elem[i].id == postID || elem[i].id == telID) {
				if(!numberOnly(elem[i])){
					alert("nummer only :\n"+$(elem[i]).previous("label").innerHTML.stripTags());
					return fals;
				}
			}
			if(elem[i].id==emailID){
				email = elem[i];
			}
		}
	}
	return emailPatternCheck(email);
}
function setCCEmail(){
	var form = $('contact_form');
	var email = form.elements[emailID];
	var cc = form.elements['cc'];
	if(cc.value.strip() == '') {
		cc.value = email.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 ");
		return false;
	}
	return true
}
function mapEffect(){
if($$("area")){
  if($("map")){ 
      var href = new Array();
      var defaultMapSrc = $("map").readAttribute("src");
      /// synchronize to left menu
       var link = $$(".category-sub-menu a");
           link.each(function(a){ 
               href[a.rel] = a.href;
               if(a.rel != "map3" && a.rel != "map21"){ 
                a.observe('mouseover', function(e){
                  hover(this.rel); 
                });
                a.observe('mouseout', function(e){
                  hover();
                });
               }
           });
      // end of synchronize to left menu
   }
   var hover = function(src){
        if(src) { $("map").writeAttribute("src", "/erlingsande/frontend/graphics/map/"+src+".gif"); }else{ $("map").writeAttribute("src", defaultMapSrc) }
   }
   $$("area").each(function(a){
   a.setAttribute("href", href[a.id]);
    $("map3").setAttribute("href", href['map3']);
    $("map21").setAttribute("href", href['map21']);
   a.observe('mouseover', function(e){      
       if(this.id){  hover(this.id);  }
   });
   a.observe('mouseout', function(e){
       hover();
   });
      if(a.id){
	new Insertion.Bottom("county-map", '<img src="/erlingsande/frontend/graphics/map/'+a.id+'.gif">')
      }
   });
  
}
}
