function WebOnLogOut(){
	CallServer( "http://www.coop.no/solution/operations/soap_webOn.aspx", "WebonLogOut", "POST" );
	document.location = document.forms[1].action;
}
// Tooltip
function doTooltip(e, msg) {
     if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;     
      Tooltip.show(e, msg);     
}
function hideTip() {
 if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
     Tooltip.hide();
}
function validate_subscription()
{
   if (document.form.elements['epost'].value == "" && document.form.elements['mobil'].value == "")
     {
        alert ("Klikk deg inn p&#3653; Endre abonnementsinfo\r\nfor &#3653; legge inn evt. epost og mobilnummer" );
        return false;
     }
     if (document.form2.elements['epost'].value == "")
     {
        alert ("For &#3653; motta epost m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn din epost adresse!" );
        return false;
     }
     if (document.form2.elements['mobil'].value == "")
     {
        alert ("For &#3653; motta sms m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn ditt mobilnummer" );
        return false;
     }
}

function validate_this()
{ 
   if ((document.form2.elements['USER.O2OEMAIL_SUBS'][0].checked) && (document.form2.elements['USER.O2OSMS_SUBS'][0].checked))
   {

     if (document.form2.elements['epost'].value == "" && document.form2.elements['mobil'].value == "")
     {
        alert ("Klikk deg inn p&#3653; Endre abonnementsinfo\r\nfor &#3653; legge inn evt. epost og mobilnummer" );
        return false;
     }
     if (document.form2.elements['epost'].value == "")
     {
        alert ("For &#3653; motta epost m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn din epost adresse!" );
        return false;
     }
     if (document.form2.elements['mobil'].value == "")
     {
        alert ("For &#3653; motta sms m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn ditt mobilnummer" );
        return false;
     }
   }
   if (document.form2.elements['USER.O2OEMAIL_SUBS'][0].checked)
   {
     if (document.form2.elements['epost'].value == "")
     {
        alert ("For &#3653; motta epost m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn din epost adresse!" );
        return false;
     }
   }
   if (document.form2.elements['USER.O2OSMS_SUBS'][0].checked)
   {
     if (document.form2.elements['mobil'].value == "")
     {
        alert ("For &#3653; motta sms m&#3653; du inn p&#3653;\r\nEndre abonnemmentsinfo og legge inn ditt mobilnummer" );
        return false;
     }
   }
   if ((!document.form2.elements['USER.O2OEMAIL_SUBS'][0].checked) && (!document.form2.elements['USER.O2OSMS_SUBS'][0].checked))
   {
      alert("Du er hjertelig velkommen til &#3653; avgi\r\nditt samtykke ved en senere anledning!");
      return false;
   }

}

function validate_this_sap()
{ 
   if ((document.form1.elements['O2OEMAIL'][0].checked) && (document.form1.elements['O2OSMS'][0].checked))
   {

     if (document.form1.elements['EMAIL'].value == "" && document.form1.elements['MOBILEPHONE'].value == "")
     {
        alert ("Du m&#3653; legge inn epostadresse og mobilnummer!");
        return false;
     }
     if (document.form1.elements['EMAIL'].value == "")
     {
        alert ("For &#3653; motta epost m&#3653; du legge inn din epostadresse!");
        return false;
     }
     if (document.form1.elements['MOBILEPHONE'].value == "")
     {
        alert ("For &#3653; motta sms m&#3653; du legge inn ditt mobilnummer");
        return false;
     }
   }
   if (document.form1.elements['O2OEMAIL'][0].checked)
   {
     if (document.form1.elements['EMAIL'].value == "")
     {
        alert ("For &#3653; motta epost m&#3653; du inn legge inn din epostadresse!");
        return false;
     }
   }
   if (document.form1.elements['O2OSMS'][0].checked)
   {
     if (document.form1.elements['MOBILEPHONE'].value == "")
     {
        alert ("For &#3653; motta sms m&#3653; du legge inn ditt mobilnummer");
        return false;
     }
   }
   if ((!document.form1.elements['O2OEMAIL'][0].checked) && (!document.form1.elements['O2OSMS'][0].checked))
   {
      alert("Du er hjertelig velkommen til &#3653; avgi\r\nditt samtykke ved en senere anledning!");
      return true;
   }

}


function validate_form ( )
{
    var email   = document.form1.elements['EMAIL'].value;
    var mobile = document.form1.elements['MOBILEPHONE'].value;
    valid = true;

    if ( document.form1.elements['CITY'].value == "" )
    {
        //alert ( "Vennligst oppgi gyldig postnummer" );
        //valid = false;
    }

    if(email && !validate_email(email)){
        valid = false;
    }

    valid = validate_this_sap();

    num_children = document.form1.elements['USER.NUM_OF_CHILDREN'].value;


    if (document.form1.elements['USER.CIVIL_STATUS'].value == '') {
      if (num_children != '') {
        alert ( "Vennligst oppgi sivilstand" );
        valid = false;
      }
    }
    if (num_children == '') {
      if (document.form1.elements['USER.CIVIL_STATUS'].value != '') {
        alert ( "Vennligst oppgi antall barn" );
        valid = false;
      }
    }

    if (num_children >= 1) {
      if (document.form1.elements['USER.YEAR_OF_BIRTH_CHILD1'].value == '') {
        alert ( "Vennligst oppgi f&#3672;dsels&#3653;r for ditt yngste barn" );
        valid = false;
      }
      else if (num_children >= 2) {
        if (document.form1.elements['USER.YEAR_OF_BIRTH_CHILD2'].value == '') {
          alert ( "Vennligst oppgi f&#3672;dsels&#3653;r for ditt eldste barn" );
          valid = false;
        }
    }

    }

    return valid;
}

function validate_subscriptioninfo ()
{
    var email   = document.form1.elements['USER.EMAIL_SUBS'].value;
    var mobile = document.form1.elements['USER.MOBILEPHONE_SUBS'].value;
    valid = true;

    if(email && !validate_email(email)){
        valid = false;
    }

    if(mobile && !validate_mobile(mobile)){
        valid = false;
    }
    
    if (!email){
        alert ("E-post feltet er obligatorisk og m&#3653; fylles ut korrekt!");
        valid = false;
    }

    return valid;
}


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("E-Post adressen er ikke gyldig: Eksempel p&#3653; riktig adresse er: fornavn.etternavn@firma.no");
    return false;
  }
  else {
    return true;
  }
}

function validate_mobile(mobile_str){
  var zipcode_filter = /^(\d{8})$/i;
  var mob_begin_filter = /^[4|9]/;

  if (!zipcode_filter.test(mobile_str)){
    alert("Mobilnummer kan bare inneholde tall, 8 siffer.");
    return false;
  }
  if (!mob_begin_filter.test(mobile_str)){
    alert("Mobilnummer m&#3653; starte p&#3653; 4 eller 9.");
    return false;
  }
  else {
    return true;
  }
}

function getByID (n) {
  var d = document;
  if (d.getElementById) {
    return d.getElementById(n);
  }
  else if (d.all) {
    return d.all[n];
  }
}


function toggleDisplay() {
  konto = document.zcmvissaldo.kontotype;
  konto_id = konto.options[konto.selectedIndex].value;

  for (i=0; i<konto.options.length; i++) {
    div = getByID(konto.options[i].value);
    if (div) { div.style.display = "none"; }
  }

  var div = getByID(konto_id);
  if (div) {
    if (div.style.display != "block") {
      div.style.display = "block";
    } else {
      div.style.display = "none";
    }
  }
  return false;
}


function toggleDiv(e){
  $('content-info').toggle();
  $('content-form').toggle();
 Event.stop(e);
}

function toggleKonto(t)
{
    var type = t;

    fraKonto = document.zcmvissaldo.fraKonto;
    tilKonto = document.zcmvissaldo.tilKonto;

//    alert('fraKonto.options.length = '+fraKonto.options.length);
//    alert('tilKonto.options.length = '+tilKonto.options.length);
//    alert(type);

    if ($("fraKonto").options.length > 1 && $("tilKonto").options.length > 1) {
        $("overforing_amount").show();
        $("overforing_submit_row").show();
        $("overforing_same_account").hide();
        if (type == 'f') {
            for (i=0; i < fraKonto.options.length; i++) {
                if (fraKonto.options[i].selected == true) {
                    if (i>0) {
                        tilKonto.options[i-1].selected = true;
                    }
                    else {
                        tilKonto.options[i+1].selected = true;
                    }
                }
            }
        }

        if (type == 't') {
            for (i=0; i < tilKonto.options.length; i++) {
                if (tilKonto.options[i].selected == true) {
                    if (i>0) {
                        fraKonto.options[i-1].selected = true;
                    }
                    else {
                        fraKonto.options[i+1].selected = true;
                    }
                }
            }
        }
    }
    else{
        $("overforing_amount").hide();
        $("overforing_submit_row").hide();
        $("overforing_same_account").show();
    }
    return false;
}

function num_childen()
{
  num_children = document.form1.elements['USER.NUM_OF_CHILDREN'].value;  
  var tr1 = getByID('child1');
  var tr2 = getByID('child2');

  if (num_children == 0 || num_children == '') {
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD1'].disabled = true;
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD2'].disabled = true;
    tr1.style.visibility = "hidden";
    tr2.style.visibility = "hidden";
  }
  else if (num_children == 1) {
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD1'].disabled = false;
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD2'].disabled = true;
    tr1.style.visibility = "visible";
    tr2.style.visibility = "hidden";
  }
  else {
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD1'].disabled = false;
    document.form1.elements['USER.YEAR_OF_BIRTH_CHILD2'].disabled = false;    
    tr1.style.visibility = "visible";
    tr2.style.visibility = "visible";
  }

}

function valider()
{
    if(!document.skjema.betalingstermin[0].checked && !document.skjema.betalingstermin[1].checked)
    {
        alert("Vennligst velg betalingstermin");
        return false;
    }
    else if(!document.skjema.medl_nr.value.match(/^\d{10}$/))
    {
        if(document.skjema.medl_nr.value.match(/\w+/))
        {
            alert("Feil i medlemsnummer.");
        }
        else
        {
            alert("Vennligst fyll inn medlemsnummer.");
        }
        return false;
    }
    else if(!document.skjema.f_navn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn fornavn.");
        return false;
    }
    else if(!document.skjema.e_navn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn etternavn.");
        return false;
    }
    else if(!document.skjema.adresse.value.match(/\w{2,}/))
    {
        alert("Vennligst fyll inn adresse.");
        return false;
    }
    else if(!document.skjema.postnr.value.match(/^\d{4}$/))
    {
        if(document.skjema.postnr.value.match(/\w+/))
        {
            alert("Feil i postnummer.");
        }
        else
        {
            alert("Vennligst fyll inn postnummer.");
        }
        return false;
    }
    else if(!document.skjema.poststed.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn poststed.");
        return false;
    }
    else if(!document.skjema.tlfnr.value.match(/^\d{5,10}$/))
    {
        if(document.skjema.tlfnr.value.match(/\w+/))
        {
            alert("Feil i telefonnummer.");
        }
        else
        {
            alert("Vennligst fyll inn telefonnummer.");
        }
        return false;
    }
    else if(!document.skjema.personnr.value.match(/^\d{11}$/))
    {
        if(document.skjema.personnr.value.match(/\w+/))
        {
            alert("Feil i personnummer.");
        }
        else
        {
            alert("Vennligst fyll inn personnummer.");
        }
        return false;
    }
    else if(!document.skjema.from.value.match(/^.+@.{2,}\..{2,4}$/))
    {
        if(document.skjema.from.value.match(/.+/))
        {
            alert("Ugyldig e-post adresse.");
        }
        else
        {
            alert("Vennligst fyll inn e-post adresse.");
        }
        return false;
    }
    else if(document.skjema.sambfnavn.value.match(/\w+/) || document.skjema.sambenavn.value.match(/\w+/) || document.skjema.sambpnr.value.match(/\w+/))
    {
        if(document.skjema.sambfnavn.value.match(/^$/))
        {
            alert("Vennligst fyll inn ektefelle/samboers fornavn.");
            return false;
        }
        else if(!document.skjema.sambenavn.value.match(/\w+/))
        {
            alert("Vennligst fyll inn ektefelle/samboers etternavn.");
            return false;
        }
        else if(!document.skjema.sambpnr.value.match(/\d{11}/))
        {
            if(document.skjema.sambpnr.value.match(/\w+/))
            {
                alert("Feil i ektefelle/samboers personnummer.");
            }
            else
            {
            alert("Vennligst fyll inn ektefelle/samboers personnummer.");
            }
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}


function valider_barn()
{
    if(!document.skjema.betalingstermin[0].checked && !document.skjema.betalingstermin[1].checked)
    {
        alert("Vennligst velg betalingstermin");
        return false;
    }
    else if(!document.skjema.medl_nr.value.match(/^\d{10}$/))
    {
        if(document.skjema.medl_nr.value.match(/\w+/))
        {
            alert("Feil i medlemsnummer.");
        }
        else
        {
            alert("Vennligst fyll inn medlemsnummer.");
        }
        return false;
    }
    else if(!document.skjema.f_navn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn fornavn.");
        return false;
    }
    else if(!document.skjema.e_navn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn etternavn.");
        return false;
    }
    else if(!document.skjema.adresse.value.match(/\w{2,}/))
    {
        alert("Vennligst fyll inn adresse.");
        return false;
    }
    else if(!document.skjema.postnr.value.match(/^\d{4}$/))
    {
        if(document.skjema.postnr.value.match(/\w+/))
        {
            alert("Feil i postnummer.");
        }
        else
        {
            alert("Vennligst fyll inn postnummer.");
        }
        return false;
    }
    else if(!document.skjema.poststed.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn poststed.");
        return false;
    }
    else if(!document.skjema.tlfnr.value.match(/\d{5,10}/))
    {
        if(document.skjema.tlfnr.value.match(/\w+/))
        {
            alert("Feil i telefonnummer.");
        }
        else
        {
            alert("Vennligst fyll inn telefonnummer.");
        }
        return false;
    }
    else if(!document.skjema.personnr.value.match(/^\d{11}$/))
    {
        if(document.skjema.personnr.value.match(/\w+/))
        {
            alert("Feil i personnummer.");
        }
        else
        {
            alert("Vennligst fyll inn personnummer.");
        }
        return false;
    }
    else if(!document.skjema.from.value.match(/^.+@.{2,}\..{2,4}$/))
    {
        if(document.skjema.from.value.match(/.+/))
        {
            alert("Ugyldig e-post adresse.");
        }
        else
        {
            alert("Vennligst fyll inn e-post adresse.");
        }
        return false;
    }
    else if(!sjekkb1() || !sjekkb2() || !sjekkb3())
    {
        return false;
    }
    else
    {
        return true;
    }
}

function sjekkb1()
{
    if(!document.skjema.barn1fnavn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn barn 1's fornavn.");
        return false;
    }
    else if(!document.skjema.barn1enavn.value.match(/\D{2,}/))
    {
        alert("Vennligst fyll inn barn 1's etternavn.");
        return false;
    }
    else if(!document.skjema.fdato1.value.match(/.{2,}/))
    {
        alert("Vennligst fyll inn barn 1's f\u00F8dselsdato.");
        return false;
    }
    else
    {
        return true;
    }
}
function sjekkb2()
{
    if(document.skjema.barn2fnavn.value.match(/\w+/) 
|| document.skjema.barn2enavn.value.match(/\w+/))
    {
        if(!document.skjema.barn2fnavn.value.match(/\D{2,}/))
        {
            alert("Vennligst fyll inn barn 2's fornavn.");
            return false;
        }
        else if(!document.skjema.barn2enavn.value.match(/\D{2,}/))
        {
            alert("Vennligst fyll inn barn 2's etternavn.");
            return false;
        }
        else if(!document.skjema.fdato2.value.match(/.{2,}/))
        {
            alert("Vennligst fyll inn barn 2's f\u00F8dselsdato.");
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}
function sjekkb3()
{
    if(document.skjema.barn3fnavn.value.match(/\w+/)
|| document.skjema.barn3enavn.value.match(/\w+/))
    {
        if(!document.skjema.barn3fnavn.value.match(/\D{2,}/))
        {
            alert("Vennligst fyll inn barn 3's fornavn.");
            return false;
        }
        else if(!document.skjema.barn3enavn.value.match(/\D{2,}/))
        {
            alert("Vennligst fyll inn barn 3's etternavn.");
            return false;
        }
        else if(!document.skjema.fdato3.value.match(/.{2,}/))
        {
            alert("Vennligst fyll inn barn 3's f\u00F8dselsdato.");
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}


function clearText(thefield){
 if (thefield.defaultValue==thefield.value) {
   thefield.value = "";
  }
}
function clearText2(thefield){
 if (thefield.defaultValue==thefield.value) {
   thefield.value = "";
  }
}  


function validate_survey()
{
  var rname = '';
  var total = 0;
  for (question=1; question<=3; question++) {
    var sq = document.survey.elements['SURVEYRESULTLINE.SURVEYQUESTION_ID'+question];
    rname = 'radio_choice' + question;
    eval("rname = 0");
    for (answer = 0; answer < sq.length; answer++) {
      if (sq[answer].checked) {
        eval("rname = 1"); 
        total = total + rname;
      }
    }
  }

  if(total == 3 && document.survey.elements['SURVEYRESULTLINE.SURVEYQUESTION_ID4'].value != ''){
    return true;
  }
  else {
    alert("Du har ikke svart p&#3653; alle sp&#3672;rsm&#3653;lene eller gitt din begrunnelse.\nFyll ut det som mangler og trykk p&#3653; Send svar igjen.");
    return false; 
  }
}


function validate_skattejakt()
{
  var rname = '';
  var total = 0;
  for (question=1; question<=9; question++) {
    var sq = document.survey.elements['SURVEYRESULTLINE.SURVEYQUESTION_ID'+question];
    if (sq.value == '') {
      total = total +1;
    }
  }

  if(total == 0){
    return true;
  }
  else {
    alert("Du har ikke svart p&#3653; alle sp&#3672;rsm&#3653;lene eller gitt din begrunnelse.\nFyll ut det som mangler og trykk p&#3653; Send svar igjen.");
    return false; 
  }
}

function prescore_check()
{
  if (document.bestill.avtale.checked) {
    return true;
  }
  else {
    alert("Du m&#3653; bekrefte at du har lest og akseptert avtalevilk&#3653;rene for Coop medlems- & betalingskort.");
    return false;
  }

}

function validate_comment()
{
  var comment = document.getElementById('comment').value;

  if( document.getElementById('title').value == '') {
    alert("Tittel er obligatorisk &#3653; fylle ut");
    return false;
  }
  else if( comment == '') {
    alert("Kommentar er obligatorisk &#3653; fylle ut");
    return false;
  }
  else if( comment.length > 500) {
    alert("Din kommentar kan ikke v&#3654;re p&#3653; mer enn 500 tegn");
    return false;
  }
  else if( !document.getElementById('validate').checked ) {
    alert("Reglement for 'Min side' m&#3653; godkjennes");
    return false;
  }

  return true;

}

function show_help(e) {

       oAnchor = Event.findElement(e,'A');

         var sURL =oAnchor.href;
         var sTitle = oAnchor.getAttribute('title');
                
          js_dialog('box_help',{title:sTitle,scrollbar:'auto',left:Event.pointerX(e)-35,top:Event.pointerY(e)-35,width:400,height:400});       

          new Ajax.Request(sURL,{

            method: 'get',
            onSuccess: function(resp) {
              $('help_text').innerHTML = resp.responseText;
            }

         });

       Event.stop(e);

       return false;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
if (selObj.options[selObj.selectedIndex].value != 0) {
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
}

function cands(){
  var i = 0;
  var imax = 0;
  for(i=0;i<document.election_form.elements.length; i++){
    if(document.election_form.elements[i].checked == true){
      imax++
    }
    if(imax > 4){
      alert("Du kan maks kumulere 4 kandidater");
      return false;
    }
  }
  return true;
}

function check(id,cid){
  var thebox = document.getElementById(id);
  var voteint = document.getElementById('VOTE_INT_' + cid);
  if(thebox.cheked == false){
    thebox.click();
    //thebox.value = 1; //ok
    //voteint.value = 1;             
  }
  else{
    thebox.click();
    //thebox.value = 2; //ok
    //voteint.value = 2;
  }
}

function del(id){
  var td = document.getElementById('td_' + id);
  var mee = document.getElementById('DEL_' + id);
  if(mee.cheked == true){
    //mee.click();
    //alert("hallis");
    //td.style.color = "red";
  }
  else{
    //td.style.color = "green";
    //mee.click();
  }
}


function alert_mail(id,count){

   $(id).request({ 
    onComplete: function(resp){
      $('alert_warning' + count).innerHTML = 'Varsling om upassende innhold er sendt til Coop Medlemservice.';
    }
   });

  return false;
}


function print_bong() {
  alert("test");
}
function copyElection(){
   var defaultPreload = '<span class="preloader">' + 'loading&nbsp;' + preloader + '</span>';
   if($('copy-election-link')){
     var a = $('copy-election-link');
     a.preInit = function(){
        var target = a.target ? $(a.target) : $('content'); 
        var id = $('election_id').getValue();
        var p = $H(encodeURI(a.href).toQueryParams());
         if(p.get('election_id')){
            p.set('election_id', id);
         }else{
            p.update({'election_id':id});
         }     
        var div = new Element('div').setStyle({'width':'375px', 'float':'none', 'margin':'0 auto'}).addClassName('preloader');
        var i = new Element('input', {id:'election-name', type:'text', value:$('election_id').options[$('election_id').selectedIndex].text});
        var l = new Element('label').writeAttribute({'htmlFor': 'election-name'}).update('Nytt valg navn');
        var b = new Element('button').update('Lagre').observe('click', function(){
        if(i.value.blank()){
           i.addClassName('error');
           i.focus();
        }else{
           i.removeClassName('error');
           if(p.get('company_name')){
              p.set('company_name',i.value);
           }else{
              p.update({'company_name':i.value});
           }
         p.update({debug:'off',ajax:'1',hide_menu:'1'})
         new Ajax.Request('/wsp/coop61/frontend.cgi?', {
              parameters: p.toObject(),
              onLoading: function(){ preloadMask.updateContent(defaultPreload); },
              onSuccess: function(r){
                  try {
                      target.update(r.responseText);
                      DomObserve();
                      regenerateWYSIWYG();
                      // set false to isUpdate for detect form change
                      leftNavigator();
                      isUpdate = false;
                      setActiveRegionMenu();
                      ajaxForm();
                      selectboxOnchangeLink(); selectboxNavigate();
                      preloadMask.hide();
                    }catch(e){      
                      ErrorCatcher(e);
                    }
              }
         });
         }
        });
        var b2 = new Element('button').update('Avbryt').observe('click', function(){
                 preloadMask.hide(function(){
                     preloadMask.updateContent(defaultPreload);
                     preloadMask.hide();
                 });
        });
     
        [l,i,b,b2].each(function(e){
           if(e){
             e.setStyle({ 'float':'none', 'marginRight':'5px', 'textAlign':'left' });
             div.insert({'bottom':e});
           }
        });
      preloadMask.updateContent(div);
     return false;
    }

   }
};
function DomObserve(){
  // Point the click event of hellobutton to the right function
  if ( $('flash_link_medlemsblad') ){
    $('flash_link_medlemsblad').observe('change', new_flash_target);
  }
  //For evalg module
  TRhover();
  //accordionMenu();
  if ( $('s_lag_id') ){
    $('s_lag_id').observe('change', function(e){ this.up('form').submit(); });
  }
//  observe_vote_ost();
//  observe_vote_fss();
  AjaxLink();
  setCalendarPopup();
  selectboxNavigate();
  deleteConfirmation();
  submitDeleteCheck(); 
  goBackCandidateLists();
  if(!$('tipDiv')){ try{ Tooltip.init(); }catch(e){} };
  add_alt_cand(); // In 'evalg_js' template
  add_alt_cand_box(); // In 'evalg_js' template
  toggle_kumuler(); // In 'evalg_js' template
  if ( $('new-user') ){
    $('new-user').observe('click', toggleDiv);
  }
 }

var preloadMask;
var backButton;
document.observe('dom:loaded',function(){
    if($$('.member_eElection')){
      $$('.member_eElection').each(function(f){
        f.observe('submit', function(e){
           try {
             if(election_demo() != true){
               alert('Ugyldig avstemming. Ved kumulering av utfordrekandidat må annen kandidat strykes.');
               e.stop();
             }
             if(chk_input_alternative() != true){
               alert("Du må fullføre radene du har startet å fylle ut. Feltene som mangler er rammet inn med rød ramme.");
               e.stop();
             }
           }catch(e){
             alert('form.member_eElection submit error: ' + e);
             e.stop();
           }
        });
      });
    }


    if($$('.checkboxvalidate')){
      $$('.checkboxvalidate').each(function(f){
        f.observe('submit', function(e){
          try{
            if(checkboxlimit2() != true){
              alert('Ugyldig avstemming. Ved kumulering av utfordrekandidat må annen kandidat strykes.');
              e.stop();
            }
          }catch(e){
            alert('checkboxlimit2 error: ' + e);
            e.stop();
          }
        });
      });
    }

   preloadMask = new ElementMask('<span class="preloader">' + 'loading&nbsp;' + preloader + '</span>');
   backButton = new AjaxHistory();
   //reloadMask = new popup('preloader', new Element('span').update('loading&nbsp;' + preloader).addClassName('preloader'));
   DomObserve();
   topNavigator();

   leftNavigator();
   ajaxForm();
   selectboxOnchangeLink();
   selectboxNavigate();
   formSubmitCheck();
});

function election_demo(){
  if ($('demo_election_form')){
    var organName = new Array();
    var organChk  = new Array();
    var organ = ''
    var organNo = 0;

    var repre = 0;
    var varar= 0;
    var repre_vote = '.'+'Representanter';
    var varar_vote = '.'+'Vararepresentanter';

    if ($$('.altcandidate')) {

        //all organ
        $$('.altcandidate').each(function(obj){
           if((organ =='')||(obj.value != organ)){
               organ = obj.value
               organName[organNo] = organ;
               organNo++;
           }
        }); //end each  

        for(var i=0;i<organNo;i++){ organChk[i] = 0;}

        $$('.altcandidate').each(function(obj){
           if(obj.checked){
             for(var i=0;i<organNo;i++){
              if(obj.value == organName[i]){  organChk[i]++;}
             }
           }   

        }); //end each  

       var chkChallenge = 0;
       for(var i=0;i<organNo;i++){
         var chkValidRes = election_demo_chkvalid(organName[i],organChk[i]);
         if (chkValidRes == 'No'){ chkChallenge = 1; }
       }

       if (chkChallenge == 1){
        return false;
       }else{
         return true;
       }
    }
  } else {
    return true;
  } // End if ($('demo_election_form'))


}

function election_demo_chkvalid(organName,noChk){
      var chkVote = 0;
      var chkAlt  = organName+'_alt';      

      $$('.'+organName).each(function(obj){
         if(obj.checked){ chkVote++; }          
      });


      $$('.'+chkAlt).each(function(obj){
         if(obj.value.strip().length != 0){  chkVote--;  }
      });



      if(chkVote >= noChk){
        return 'OK';
      }else{
        return 'No';
      }
}

function bbs_error(error_code){
  if ( window != top ) {
    top.location.href = location.href;
  }
}
/*
function observe_vote_ost(){
  if ( $$('.vote_number') ){
    $$('.vote_number').each( function(v){
      v.observe('change', function(e){
        if (isNaN(v.value) || v.value == ''){
          alert('Ugyldig antall');
          v.value = v.title;
        }
        else {
          var chk_over = parseInt(v.title)+1;
          if (parseInt(v.value) < parseInt(v.title)){
            alert('Ugyldig antall');
            v.value = v.title;
          }
          else if (parseInt(v.value) > chk_over){
            alert('Ugyldig antall');
            v.value = v.title;
          }
        }
      });
    });
  }
  if ( $('frm_vote_add') && $$('.vote_number') ){
    $('frm_vote_add').observe('submit', function(e){
      var max_candidate = 4;
      var limit_count = 0;
      $$('.vote_number').each( function(v){
        if (v.value != v.title){ limit_count++; }
      });
      if (limit_count > max_candidate){
        alert('Du kan maks kumulere 4 kandidater');
        Event.stop(e);
      }
    });
  }
}

function observe_vote_fss(){
  if ( $$('.vote_number_fss') ){
    $$('.vote_number_fss').each( function(v){
      v.observe('change', function(e){
        if (isNaN(v.value) || v.value == ''){
          alert('Ugyldig antall');
          v.value = '1';
        }
        else {
          if (parseInt(v.value) < 0){
            alert('Ugyldig antall');
            v.value = '1';
          }
          else if (parseInt(v.value) > 2){
            alert('Ugyldig antall');
            v.value = '1';
          }
        }
      });
    });
  }
  if ($$('.alt_vote')){
    $$('.alt_vote').each( function(r){
      r.observe('keyup', function(e){
        var disable_vote = 'vote_'+r.title;
        var alt_vote = 'alt_vote_'+r.title;
        if (r.value != ""){
          $(disable_vote).value = '0';
          $(disable_vote).disabled = 'disabled';
          $(alt_vote).disabled = '';
          if ($(alt_vote).value == '0'){
            $(alt_vote).value = '1';
          }
        }
        else {
          $(disable_vote).value = '1';
          $(disable_vote).disabled = '';
          $(alt_vote).value = '0';
          $(alt_vote).disabled = 'disabled';
        }
      });
    });
  }
}
*/
function new_flash_target(e){
  var oSel = $(Event.element(e));
  var oOpt = $(oSel.options[oSel.selectedIndex]);

  $('flash_medlemsblad').target='_blank';
  $('flash_medlemsblad').action=oOpt.value;
  $('flash_medlemsblad').submit();
}
/** Used in evalg module **/
function TRhover(){
  var tr = $$('tr.wo_nav');
  if(tr){
    tr.each(function(o){
       o.observe('mouseover', function(e){ this.toggleClassName('activeline'); });
       o.observe('mouseout', function(e){ this.toggleClassName('activeline'); });
       if(o.id.startsWith('USER_')){ 
          o.observe('click', function(e){ 
            var id = this.id.split('_');
            var userId = id[1];
            var companyId = id[2];
            location.href='/wsp/coop61_dev2/frontend.cgi?func=frontend.show&template=evalg_contact_employee&user_id='+userId+'&company_id='+companyId;    
          });
       }
    });
  }
}
function ajaxzip(zipcode,languagecode,id) {
  var exturl = 'http://www.webon.net/wsp/webon_ekstranett/frontend.cgi?func=ajax_services.zipcode&debug=off&charset=utf8&zipcode=' + zipcode + '&languagecode=' + languagecode + '&language=' + languagecode;
  var url = '/wsp/coop61_dev2/frontend.cgi?func=ajax.call&ajax_func=get_url&debug=off&url=' + encodeURIComponent(exturl); 
  var retur = "";

  if(zipcode && zipcode != "") {
    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;
              //alert(json.status);
            }
            else {
              $(ziparea).writeAttribute('value','');  
              alert(json.status);
            }
          }
        }
      }
    });
  }

  return retur;
}

/** Form validations **/
var validations = new Hash();

validations.set('number', function(element) {
	return (element.value.blank()) || checknumber(element.value);
	});

validations.set('email', function(element) {
	return (element.value.blank()) == "" || checkemail(element.value);
	});

validations.set('mandatory', function(element) {
	return !element.value.blank();
});

Event.observe(window, 'load', function() {
  // applyValidationLogic();
});


function applyValidationLogic() {
	//first add the validation to all the input fields.
	var input_fields = $$("input");
	var i;
	for (i = 0; i < input_fields.length; i++) {
		var element = input_fields[i];
		add_validation_observers(element);
	}

	//now add validation for form submitting of the form.
	var forms = $$("form");
	for(i = 0; i < forms.length;i++) {
		var form = forms[i];
		add_form_validation_observers(form);
	}
}

function add_validation_observers(element) {
	Event.observe(element, "focus", remove_error_event);
	Event.observe(element, "blur", validate_field_event);
}

function validate_field_event(event) {
	var element = Event.element(event);
	validate_field(element);
}

function validate_field(element) {
	remove_error(element);
	validations.each(function(pair) {
		if (element.hasClassName(pair.key)) {
			var valid = pair.value(element);
			if ((pair.key == 'mandatory') && !valid) {
				//alert(pair.key);
                                add_error(element);
                                return;
                        }
                        else if ((pair.key == 'email') && !valid) {
                                //alert(pair.key);
 				add_error_email(element);
                                return;
                        }                       
		}
	});
}


function add_form_validation_observers(form) {
	Event.observe(form,"submit",validate_form);
}



function validate_form(event) {
	var inputs = Event.element(event).getInputs();
	var i;
	for(i = 0; i < inputs.length;i++) {
		validate_field(inputs[i]);
	}
	for(i = 0; i < inputs.length;i++) {
		if (inputs[i].hasClassName('error')) {
			alert("Obligatorisk - m&#3653; fylles ut!");
			Event.stop(event);
			return false;
                }
                else if (inputs[i].hasClassName('error_email')) {
			alert("Epost - m&#3653; fylles ut!");
			Event.stop(event);
			return false;
                }
	}

	return true;
}


function remove_error_event(event) {
	remove_error(Event.element(event));
}

function remove_error(element) {
	element.removeClassName('error');
        element.removeClassName('error_email');
}

function add_error_event(event) {
	add_error(Event.element(event));	
}

function add_error(element) {
	element.addClassName('error');
}


function add_error_email_event(event) {
	add_error_email(Event.element(event));	
}

function add_error_email(element) {
	element.addClassName('error_email');
}

/*function trim(str) {
	return str.replace(/^\s+|\s+$/g, '') ;
}*/

function checknumber(value){
	var anum=/(^[+-]?\d+$)|(^[+-]?\d+\.\d+$)/
	return (anum.test(value));
}

function checkemail(str){
	var aemail=/(^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)/
	return (aemail.test(str));
}

function copy_value(){ 
   var frm = $('contact_employee');  
   var email_value = $('email');
   if (frm){
    if(email_value){
      email_value.observe('keyup', function(e){ 
          var data = $(this).getValue();
          if(data != ''){
           $('username_box').value = data; 
         }
      });
    }
     
   }  
}

/** Delete confirmation  **/

function deleteConfirmation(){
       var elem = $$(".del-button, .delete");
       if(elem){
           elem.each(function(obj){
           var div = obj.target ? $(obj.target) : $('content');
                obj.observe('click', function(e){
                   e.stop();
                   if(confirm("Ønsker du å slette kanditaten?")){
                      new Ajax.Request(obj.href, {
                             parameters: { debug:'off',ajax:'1',hide_menu:'1' },
                             onLoading: function(){ preloadMask.show() },
                             onSuccess: function(r){ 
                                div.update(r.responseText);
                                DomObserve();
                                selectboxOnchangeLink(); selectboxNavigate();
                                preloadMask.hide();
                             }
                      });
                   }
                });
           });
       }
}

var regenerateWYSIWYG = function(){
 tinyMCE.idCounter=0;
 if($$('textarea.woedit')){
    $$('textarea.woedit').each(function(t){ 
      var id = t.id;
      if(!id.blank()){
        try { tinyMCE.execCommand('mceAddControl',false, id); } catch(e){  ErrorCatcher('error(' + id + '): ' + e ); }
      }
    });
 }
}
function goBackCandidateLists(){
  var a = $$('a.employee-lists');
  if(a){
     a.each(function(o){
        o.preInit = function(){
           backButton.add('candidates-list', 'content');
        };
     });
  }
}
function AjaxLink(){
  copyElection();
  var a = $$('a[rel="ajax-link"]');
  if(a && a.length > 0){
    a.each(function(o){
      o.stopObserving('click');
      o.observe('click', function(e){
         e.stop();
         if(typeof(o.preInit)=='function'){
           if(o.preInit() == false){
             return false;
           }
         }
         var div = !o.target ? $('content') : $(o.target);
         new Ajax.Request(o.href, {
             parameters:{ debug:'off', 'ajax':'1', hide_menu: '1' },
           onLoading: function(){
             preloadMask.show();
           },
           onSuccess: function(r){
             div.update(r.responseText);
             DomObserve();
             regenerateWYSIWYG();
             ajaxForm();
             selectboxOnchangeLink(); selectboxNavigate();
             preloadMask.hide();
           }
         });
      });
    });
  }
}
var ErrorCatcher = function(e){
 var msg = e.description || e;
 msg += '<br><span style="cursor:pointer">Klikk på teksten for å fjerne denne meldingen.</span>';
 var div = new Element('div', { id: "preloadErrorMsg" }).update(msg).addClassName('error preloader').setStyle({ 'float':'none', 'margin':'auto', 'width':'25%' }).observe('click', function(){ if($('preloadErrorMsg')){ $('preloadErrorMsg').remove(); preloadMask.resetContent().hide()  } })
 preloadMask.updateContent(div);
}
var ajaxing=null;
var loading=null;
var preloader = '<img src="/coop61/frontend/elements/graphics/extranet/ajax-loader.gif" alt="">';
function accordionMenu(){
var rightMenuLink = $$('a[rel="elections"]');
    if(rightMenuLink){
       rightMenuLink.each(function(a){
          a.observe('click', function(e){
             e.stop();
             if(beforeLeavCheck()==false){
                return false;
             }
             removeAdjacentClass(a, 'selected');
             var duration = 0.3;
             var self = this;
             var params = self.readAttribute("href").toQueryParams();
             var li = this.up('li');
             if(li.hasClassName('expanded')){
                li.removeClassName('expanded');
                li.addClassName('collapsed');
                if(li.down('ul.sub-menu')){
                    new Effect.BlindUp(li.down('ul.sub-menu'), { duration : duration, afterFinishInternal: function(){ li.down('ul.sub-menu').remove();} });
                }
            }else{
             // To load the content to the main div
              params.template = 'evalg_ajax_company';
              params.debug='off';
             if(loading!=null){ loading.transport.abort(); }
              loading = new Ajax.Request(self.href, {
                parameters: params,
                onSuccess: function(r){
                  try {
                    loading=null;
                    var menu = $('sub-menu');
                    $('content').update(r.responseText);
                    if($('TabsMenu')){
                     try { menu.update($('TabsMenu-id-ajax').innerHTML); $('TabsMenu').remove() }catch(e){ alert(e); }
                    }
                    DomObserve();
                    regenerateWYSIWYG();
                    preloadMask.hide();
                    // set false to isUpdate for detect form change
                    isUpdate = false;
                    setActiveRegionMenu(true); 
                    selectboxOnchangeLink(); selectboxNavigate();
                    preloadMask.hide();
                  }catch(e){
                    ErrorCatcher(e);
                  }
                }
             });
             params.template = 'evalg_ajax_year_menu';
             params.company_id = params.sel_company;
               if(ajaxing != null){
                    ajaxing.transport.abort();
                    $$('a[rel="elections"]').each(function(obj){ obj.removeClassName('loading'); });
               }
               ajaxing = new Ajax.Request('/wsp/coop61_dev2/frontend.cgi?func=frontend.show&debug=off&ajax=yes', {
                 method: 'get',
                 parameters: params,
                 onCreate: function(){ 
                          if($$('.sub-menu')){ 
                            $$('.sub-menu').each(function(ul){ 
                               //new Effect.BlindUp($(ul), { duration : duration, afterFinishInternal: function(){ $(ul).remove();} });
                            });} },
                 onLoading: function(){  self.addClassName('loading'); },
                 onSuccess: function(res){
                      self.removeClassName('loading');
                      /* expand left menu
                      li.insert({'bottom':res.responseText});
                      var ul = li.down('ul');
                      ul.hide();
                      li.adjacent('li.expanded').each(function(l){
                         l.removeClassName('expanded');
                         l.addClassName('collapsed');
                      })
                      li.removeClassName('collapsed');
                      li.addClassName('expanded');
                      new Effect.BlindDown($(ul), { duration : duration });
                      ajaxing=null;
                      */
                 }  
              });
           }
          });
       });
    }
}

function removeAdjacentClass(elem, cls){
  var o = $$(elem.tagName.toLowerCase()+'[rel="'+elem.readAttribute('rel')+'"]');
  o.each(function(a){
    a.removeClassName(cls);
  });
  if(!elem.hasClassName(cls)){ elem.addClassName(cls); }
}
// To detect the leaving page without save the form
var isUpdate = false;
function detectInputsChange(f){
  var inputs = $(f).getElements();
  if(inputs){
     inputs.each(function(i){
       i.stopObserving('change');
       i.observe('change', function(){
         isUpdate = true;
       });
     });
  }
}


function ajaxForm(){
 /* 
  - For only evalg module
  - Do not wrap the form with these IDs #caption, #main-election
 */
  var form = $$('#main-election form, #caption form');
 if(form){

  var callbackFx = function(){
                      DomObserve();
                      regenerateWYSIWYG();
                      // set false to isUpdate for detect form change
                      leftNavigator();
                      isUpdate = false;
                      setActiveRegionMenu();
                      ajaxForm();
                      selectboxOnchangeLink();
                      selectboxNavigate();
                      preloadMask.hide();
   };

   form.each(function(f){
     f.stopObserving('submit');
     var div = f.target ? $(f.target) : $('main-election');
     
     if(!f.hasClassName('no-change-detect')){
         detectInputsChange(f);
     } 
    
     
     f.observe('submit', function(e){
       e.stop();
       try { 
         if(f.hasChildren('textarea.woedit')){ 
            tinyMCE.triggerSave();
          }
       }catch(e){
       // ErrorCatcher('wysiwyg error triggerSave: ' + e);
       }
      if(typeof(f.beforeSubmit)=='function' && f.beforeSubmit()==false){
          return false;
       }
       try {
         if(f.hasClassName('no-validation') != true){
            var pass = new FieldValidation(f,{ errorClassName: 'error', errorHandler: ErrorMsg });
            if(pass.validate()!=true){ return false; }
         }

         if(election_demo() != true){
           ErrorCatcher('Ugyldig avstemming. Ved kumulering av utfordrekandidat må annen kandidat strykes.');
           return false;
         }
         if(checkboxlimit2() != true){
           ErrorCatcher('Ugyldig avstemming. Ved kumulering av utfordrekandidat må annen kandidat strykes.');
           return false;
         }
         if(chk_input_alternative() != true){
           ErrorCatcher("Du må fullføre radene du har startet å fylle ut. Feltene som mangler er rammet inn med rød ramme.");
           return false;
         }
       }catch(e){
         ErrorCatcher('AjaxValidationError: ' + e);
       }
       isUpdate = false;
       if(f.id=='login'){
          preloadMask.show();
          var int=0;
          new PeriodicalExecuter(function(p){
            if(int++ > 1){
                p.stop();
                f.submit();
            }                
          }, 0.5);
      }else{
        if(!f.hasChildren('input[type="file"]')){
          f.action += '&debug=off&ajax=1';
          if(f.target=='content'){ f.action += '&hide_menu=1'; }
          f.request({
             encoding: 'ISO-8859-1',
             onLoading: function(){ preloadMask.show(); },
             onSuccess: function(r){ 
                   try {
                      div.update(r.responseText);
                      callbackFx();
                    }catch(e){      
                      ErrorCatcher(e);
                    }
             }
          });
       }else{
           var iframe = new Element('iframe', { id: 'fileUploadFrame', name: 'fileUploadFrame', src:'javascript:""' }).hide();
           if(!$('fileUploadFrame')){
               $(document.body).insert({'bottom':iframe});
           }
           f.target = 'fileUploadFrame';
           preloadMask.show(function(){
              f.submit();
              new PeriodicalExecuter(function(pe){
              var frameBody = window.frames['fileUploadFrame'].document.getElementsByTagName('body')[0];
                  if(frameBody && !frameBody.innerHTML.blank()){  pe.stop();preloadMask.hide(); frameBody.innerHTML="";  }
               }, 1);
           });
       }
      }
     });
  });
  toggleOrganFields();
  if($('back-to-candidate-list')){
    $('back-to-candidate-list').observe('click', function(){
       backButton.back('content',null,callbackFx);
    });
  }
 }
}
// Called by WYSIWYG changed event
var setDetectFormChange = function(t){
  if(isUpdate===true){
    return;
  }
  isUpdate = true;
}
window.onbeforeunload = function(e) {
  if(isUpdate==true) {
  var text = 'Ønsker du å forlate siden uten å lagre endringer?';
  var e = e || window.event;
  // For IE and Firefox
  if (e) {
    e.returnValue = text;
  }
  // For Safari
  $('save').focus();
  return text;
 }
};
var beforeLeavCheck = function(){
  var leaveText = "Ønsker du å forlate siden uten å lagre endringer?";
  if(isUpdate==true){
     return confirm(leaveText);
  }
}
Ajax.Request.prototype.abort = function() {
    this.transport.onreadystatechange = Prototype.emptyFunction;
    this.transport.abort();
    if(Ajax.activeRequestCount-- <= 0){
       Ajax.activeRequestCount = 0;
    }
};
var ajaxing = null;
var setActiveRegionMenu = function(force){
   var isRegion = $$('.region_menu a.selected').length > 0 || $$('a.selected[rel="main-navigator"]')[0].up('li',0).hasClassName('admin-link');
   var isGlobal = $$('#global.selected').length > 0;
   var li = $$('li.admin-link');
   var disableThem = function(){
       li.each(function(o){
             if(o.down('a', 0)){
             var ID = o.down('a',0).id;
             var txt = o.innerHTML.stripTags();
               o.update('<strong id="'+ID+'"><span>'+txt+'</span></strong>');
             }
       });
  }
  if(isGlobal){
    disableThem();
  }
   if(force===true || !isRegion || isGlobal){
       var isRegionMenuActive = !$$('a[rel="region-menu"]') || ($$('a[rel="region-menu"]') && $$('a[rel="region-menu"]').length > 0);
       if((li && li.length > 0) && isRegionMenuActive){
          disableThem();
       }      
   }
  if($$('#sub-menu li a.selected').length == 0 && $$('a.selected[rel="elections"]').length > 0 && $('general')){ $('general').addClassName('selected'); }
};
var setActiveMenu = function(a){
   
   var A = 'a[rel="' + a.readAttribute('rel') + '"]';
   var activeCls = 'selected';
   $$(A).each(function(o){
      o.removeClassName(activeCls);
   });
   a.addClassName(activeCls);
} 
var ajaxFail = function(){
  var msg = "ajax_server_error" == 'ajax_server_error' ? "Sorry for inconvenience. We've found the error at the server" : "ajax_server_error";
  ErrorCatcher(msg);
}
var ajx = null;
function topNavigator(){
   
    var a = $$('a[rel="main-navigator"]');
    if(a){
       a.each(function(o){
           o.stopObserving('click');
           o.observe('click', function(e){
              e.stop();
              topNavigateCall(o);
           });
       });
    }
}
function resetTopMenuArgs(params){
   var a = $$('#sub-menu li a');
   if(a.length > 0){
     a.each(function(o){
        var p = encodeURI(o.href).toQueryParams();
        p.region_type='slag';
        p.sel_comany = params.s_lag_id;
        o.href = '/wsp/coop61/frontend.cgi?' + decodeURI($H(p).toQueryString());
     });
  }
}
function topNavigateCall(o){
 var div = $('main-election');

 if(beforeLeavCheck()==false){
   return false;
 }
   setActiveMenu(o);

    var url = o.href;
    if(Ajax.activeRequestCount > 0 && ajx!=null){
       ajx.abort();
    }
   ajx = new Ajax.Request(url, {
         parameters: { debug:'off', ajax:'1' },
         onLoading: function(){
              preloadMask.show();
         },
          onSuccess: function(r){
                    try {
                      div.update(r.responseText);
                      DomObserve();
                      regenerateWYSIWYG();
                      // set false to isUpdate for detect form change
                      leftNavigator();
                      isUpdate = false;
                      setActiveRegionMenu();
                      ajaxForm();
                      removeAdjacentClass(o, 'selected');
                      selectboxOnchangeLink();
                      selectboxNavigate();
                      if(o.id=='global'){ resetTopMenuArgs(encodeURIComponent(o.href).toQueryParams()); }
                      preloadMask.hide();
                    }catch(e){      
                      ErrorCatcher(e);
                    }
                 },
                 onFailure: ajaxFail
              });
}

function leftNavigator(){
  var a = $$('#election-menu li a'); 
  var div = $('main-election');
  if(a){
     a.each(function(o){
       o.stopObserving('click');
       o.observe('click', function(e){
         e.stop();
         if(beforeLeavCheck()==false){
             return false;
         }
         var url = encodeURI(o.href);
         new Ajax.Request(url, {
            parameters: { debug:'off', ajax:'1', hide_menu:'0' },
            onLoading: function(){
               preloadMask.show();
            },
            onSuccess: function(r){
               if(($('global') && $('global').hasClassName('selected')) || ($$('#sub-menu li a.selected').length==0)){
                if($('global')){ $('global').removeClassName('selected'); }
                 if($('general')){ $('general').addClassName('selected'); }
               }
               try {
                    div.update(r.responseText);
                    DomObserve();
                    regenerateWYSIWYG();
                    // set false to isUpdate for detect form change
                    isUpdate = false;
                    var force = o.readAttribute('rel') == 'elections';
                      a.each(function(l){
                        l.removeClassName('selected');
                      });
                      o.addClassName('selected');
                      if(o.readAttribute('rel')=='region-menu'){
                         enableTopRegionLinks(o);
                      }else{
                         setActiveRegionMenu(force);
                      }
                      ajaxForm();
                      setRegion(o);
                      preloadMask.hide();
                      leftNavigator();
                    }catch(e){      
                      ErrorCatcher(e);
                    }
             },
             onFailure: function(){ ajaxFail(); alert('error'); }
         });
       });
     });
  }
}

function enableTopRegionLinks(rel){
  try {
  // When clicked at the leftmenu;
  var templates = {'candidate':'evalg_contact_employees','zip-code':'evalg_zipcodes', 'advance':'evalg_demo_page', 'vote-list-link' : 'evalg_vote_list'};
  var actives = {'candidate':'kandidater','zip-code':'zipcodes', 'advance':'forhandsvis', 'vote-list-link' : 'vote_list_link'};
  var params = encodeURI(rel.href).toQueryParams();
 // var params = rel.href.toQueryParams();
  var href = '/wsp/coop61/frontend.cgi?func=frontend.show';
  var excludeParams = ['active', 'func', 'template'];
  $H(params).each(function(h){
     if(excludeParams.indexOf(h.key) == -1){
       href += '&' + h.key + '=' + (h.value);
     }
  });
  var li = $$('li.admin-link');
  var isRegionLeftActive = $$('a[rel="region-menu"]').length > 0;
  if((li && $$('.admin-link a').length == 0) && isRegionLeftActive ){
     li.each(function(o){

        var txt = o.innerHTML.stripTags();
        var ID = o.down('strong', 0).id;
        var uri = href+'&template=' + templates[ID] + '&active=' + actives[ID];
        var a = new Element('a', { rel: 'main-navigator', href: uri, id: ID }).update('<span>'+txt+'</span>').observe('click', function(e){
            e.stop();
            topNavigateCall(this);
        });
        o.update(a);
        
     });
  }
  }catch(e){
    ErrorCatcher('Error2: ' + e);
  }
}
function selectboxNavigate(){
  var sel = $$('select.ajax-change');
  if(sel && sel.length > 0){
     sel.each(function(s){
        s.stopObserving('change');
        s.observe('change', function(e){
           if(this.getValue().blank()){ return false; }
           var div = $(s.readAttribute('target'));
           var params = {'ajax':'1','debug':'off', hide_menu: '1'};
           params[this.name] = escape(this.getValue());

           var url = '/wsp/coop61/frontend.cgi?func=frontend.show&' + this.readAttribute('params');
           new Ajax.Request(url, {
               encoding: 'ISO-8859-1',
               parameters: params,
               onLoading: function(){ preloadMask.show(); },
               onSuccess:function(r){ 
                 try{ 
                   div.update(r.responseText);
                   DomObserve();
                   regenerateWYSIWYG();
                   isUpdate=false;
                   ajaxForm();
                   leftNavigator();
                   preloadMask.hide();
                 }catch(e){
                   ErrorCatcher(e);
                 }
               },
               onFailure: ajaxFail
           });
        });
     });
  }
}
function selectboxOnchangeLink(){
  var s = $$('select.normal-change');
  if(s && s.length > 0){
    s.each(function(o){
      o.observe('change', function(e){
       if(o.getValue().blank()){
         return false;
       }
        var url = o.readAttribute('params') + '&' + o.name + '=' + o.getValue();
        preloadMask.show(function(){
           isUpdate = false;
           location.href = '/wsp/coop61/frontend.cgi?' + url;
        });
      });
   });
  }
}
function setRegion(a){
  var p = encodeURI(a.href).toQueryParams();
  var region_type = p.region_type;
  var region_id = p.region_id;
  var sel_company = p.sel_company;
  $$('#sub-menu li a').each(function(link){
    if(link.id != 'global'){
    var params = $H(encodeURI(link.href).toQueryParams());
    if(params.get('region_type')){ params.set('region_type', region_type); }else{ params.update({'region_type':region_type}); }
    if(params.get('region_id')){ params.set('region_id', region_id); }else{ params.update({'region_id':region_id}); }
    if(params.get('sel_company')){ params.set('sel_company', sel_company); }else{ params.update({'sel_company':sel_company}); }
    
    link.href = '/wsp/coop61/frontend.cgi?' + params.toQueryString();
   }
  });
}
function setCalendarPopup(){
  var a = $$('button.calendar');
  if(a){
     a.each(function(o){
        o.stopObserving('click');
        var inp = $$('input[name="' + o.readAttribute('rel') + '"]');
        var cal = new Calendar(inp[0]);
        o.observe('click', function(e){
           cal.popup();
        });
     });
  }
}
function toggleOrganFields(){
  if($('company-type')){
    var vis = {region:'hide',krets:'show'};
 
    $('company-type').observe('change', function(e){
      var value = this.getValue();
      var K = $$('.organ-fields');
      var R = $$('.valgmodell-fields');
      if(K){
         var toggle = vis[value];
         K.each(function(p){
           $(p)[toggle]();
           var i = p.down('input',0);
           if(toggle=='hide'){
             i.writeAttribute({'disabled':'disabled'});
           }else{
             i.removeAttribute('disabled');
           }
        });
      }
      if(R){
         R.each(function(p){
           i = p.down('select',0);
           if(toggle=='show'){
             $(p).hide();
             i.writeAttribute({'disabled':'disabled'});
           }else{
             $(p).show();
             i.removeAttribute('disabled');
           }
        });
      }
    });
  }
}
function submitDeleteCheck(){
 if($$('form.delete-check')){
  $$('form.delete-check').each(function(form){

   try {
      form.beforeSubmit = function(){
      var ischecked =false;
      var chk =  form.select('input[type="checkbox"]');
      if(!chk){
        ischecked=true;
      }else{
        chk.each(function(c){
         if(c.checked==true){
            ischecked = true;
         }
        });
      }
     if(ischecked == false){
        return false;
      }else{
      return confirm('Ønsker du å slette?');
     }
     }
 }catch(e){
   alert('delete detect error');
  }
   });
 
 }
}

/***********************************************
* Limit number of checked checkboxes script- by JavaScript Kit (www.javascriptkit.com)
* This notice must stay intact for usage
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and 100s more
***********************************************/
function checkboxlimit(limit){ 
  //var checkgroup=checkgroup
  var checkgroup = $$('.checkboxlimit'); 
  var limit=limit
  for (var i=0; i<checkgroup.length; i++){
    checkgroup[i].onclick=function(){
      var checkedcount=0
      for (var i=0; i<checkgroup.length; i++)
        checkedcount+=(checkgroup[i].checked)? 1 : 0
      if (checkedcount>limit){
        alert("Maksimalt "+limit+" kumuleringer kan gjøres.")
        this.checked=false
      }
    }
  }
}

function checkboxlimit2(){

  var rep_parentbox = $$('.Representanter_parentbox');
  var rep_childbox = $$('.Representanter_childbox');

  var vara_parentbox = $$('.Vararepresentanter_parentbox');
  var vara_childbox = $$('.Vararepresentanter_childbox');
  
  var rep_checkedparent = 0;
  var rep_checkedchild = 0;
  var vara_checkedparent = 0;
  var vara_checkedchild = 0;

  for (var i=0; i<rep_parentbox.length; i++){
    rep_checkedparent+=(rep_parentbox[i].checked)? 1 : 0;
  }
  for (var i=0; i<rep_childbox.length; i++){
    rep_checkedchild+=(rep_childbox[i].checked && !rep_childbox[i].disabled)? 1 : 0;
  }
  for (var i=0; i<vara_parentbox.length; i++){
    vara_checkedparent+=(vara_parentbox[i].checked)? 1 : 0;
  }
  for (var i=0; i<vara_childbox.length; i++){
    vara_checkedchild+=(vara_childbox[i].checked && !vara_childbox[i].disabled)? 1 : 0;
  }

  if ((rep_checkedparent<=rep_checkedchild) && (vara_checkedparent<=vara_checkedchild)){
    return true;
  }
  else {
    return false;
  }
}

function chk_input_alternative(){
  var r = true;
  var alt = ['alt', 'alt_next'];
      alt.each(function(a){
         var tr = $$('.' + a + '_year');
         if(tr && tr.length > 0){
            if(election_alt_cand_chk(tr,a,'error') == false){ r=false; }
         }
      });
 return r;
}
function formSubmitCheck(){
	var form = $$('form.validation');
	if(form){
		form.each(function(f){
			f.observe('submit', function(e){
				var r = true;
				var callback = [chk_input_alternative, checkboxlimit2];
				callback.each(function(cb){
					if(typeof(cb) == 'function' && cb.call()==false){
						r = false;
					}
				})
                if(!r){
                	e.stop();
                }
			});
		});
	}
}