// $Id: zettreg.js,v 1.3 2004/06/22 10:56:54 thomas Exp $



// -------------------------------------------------------------------
// sortSelect(select_object)
//   Pass this function a SELECT object and the options will be sorted
//   by their text (display) values
// -------------------------------------------------------------------
function sortSelect(obj) {
	var o = new Array();
	if (obj.options==null) { return; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
		}
	if (o.length==0) { return; }
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
			} 
		);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
		}
	}

function radioselected() {
  var group = document.annonse.annonsetype;
  for (var i = 0; i< group.length; i++) {
    if (group[i].checked)
      return (group[i].value);
  }
	/* Kommer vi hit er group kun et element...*/
	return 0;
}




function submitByDates(fm) {
        fm.innryksdato.value="";
        for (var i=0; i<fm.kalenderdato.length; i++) {
	  if (i>0) fm.innryksdato.value+=",";
	  fm.innryksdato.value+=fm.kalenderdato.options[i].value;
        }
}


function populer_modell(val, sel) {
  var list;
  document.bil.modell.options.length = 0;
  if (val) {
    list = modeller[val];
    for(i=0;i<list.length;i+=1) {
      document.bil.modell.options[i] = new Option(list[i],list[i]);
      if (document.bil.modell.options[i].value == sel) {
        document.bil.modell.options[i].selected = true;
      }
    }
    //document.bil.modell.options[i] = new Option('Ukjent-bruk betegnelsefeltet','Ukjent');
  }
  else document.bil.modell.options[0] = new Option('Velg merke først','Ukjent');
}


function populer_sted(val, sel) {  
  if (!document.annonse.sted) return 0;
  var listen;
  document.annonse.sted.options.length = 0;

  if (val) {
    listen = steder[val];
    for(i=0;i<listen.length;i+=1) {
      document.annonse.sted.options[i] = new Option(listen[i].name,listen[i].value);
      if (document.annonse.sted.options[i].value == sel) {
        document.annonse.sted.options[i].selected = true;
      }
    }
  }
}

function dagiliste(dag, liste) {
    // Returner sant dersom dag (1-7) finnes i liste
    // Liste er separert med komma og/eller space. 
    // NB! Forutsetter (og konverterer!) dag til integer.

    if (dag==0) {
        dag=7;
    }

    l = liste.split(",");
    dagi = parseInt(dag);
    for (e in l) {
        if (l[e]==dagi) 
            return true;
    }
    return false;
}


function ByttAnnonse(){
    var valgt_annonsepakke = annonsepakker[radioselected()];

    //endre annonseheader
    var annonseheader = document.getElementById("annonseheader");
    var tekst = annonseheader.innerHTML;
    tekst = tekst.replace(/fra \d+[,.]\d+/, "fra " + valgt_annonsepakke.grunnpris);
    tekst = tekst.replace(/\d innrykk/, valgt_annonsepakke.innrykk + " innrykk");
    annonseheader.innerHTML = tekst;

    //endre "Basispris annonse 1innrykk + 50 dager på www.zett.no" i "Dette vil din annonse koste"
    var basis = document.getElementById("grunnpris_tekst");
    var tekst2 = basis.innerHTML;
    tekst2 = tekst2.replace(/fra \d+[,.]\d+/, "fra " + valgt_annonsepakke.grunnpris);
    tekst2 = tekst2.replace(/\d innrykk/, valgt_annonsepakke.innrykk + " innrykk");
    basis.innerHTML = tekst2;
    

    //loop gjennom kalender og sett valgbare dager
    ok = ltrim(document.getElementById('ok_dager').value);
    ok_array = ok.split(" ");

    for (i=0; i<ok_array.length; i++){
        dato = ok_array[i].replace(/\//g, "");
        elem = document.getElementById(dato);

        if (valgt_annonsepakke.kun_ukedager) {
            //avisen overstyres aviskonfig sin utgivelsesdager_hverdager og vi
            //må fjerne dager
            var d=new Date(ok_array[i]);
            if (dagiliste(d.getDay(), valgt_annonsepakke.kun_ukedager)) {
                document.getElementById(dato).className = 'zcalactive';
                document.getElementById(dato).onclick = function() {datoKlikk(this)};
            }
            else {
                document.getElementById(dato).className = 'zcalnonactive';
                document.getElementById(dato).onclick = function() {};
            }
        }
        else {
            document.getElementById(dato).className = 'zcalactive';
            document.getElementById(dato).onclick = function() {datoKlikk(this)};
        }
    }
    
    // Fjern alle valgte, og oppdater lista
    valgte = '';
    document.getElementById('antallvalgt').value = 0;
    update();

    
    // Velg et fast antall datoer i kalenderen
    antall = 0;
    for (j=0; j<ok_array.length; j++){
        var d = new Date(ok_array[j]);
        var dato = ok_array[j].replace(/\//g, "");
        if (valgt_annonsepakke.kun_ukedager && dagiliste(d.getDay(), valgt_annonsepakke.kun_ukedager) && antall < valgt_annonsepakke.innrykk) {
            doselect(document.getElementById(dato)); 
            antall = antall + 1;
        }
        if (!valgt_annonsepakke.kun_ukedager && antall < valgt_annonsepakke.innrykk) {
            doselect(document.getElementById(dato));
            antall = antall + 1;            
        }

    }   
    update();

    //document.getElementById('kalenderliste').innerHTML = '';
    //loop gjennom kalendren og sett valgt_annonsepakke.innrykk innrykk som default valgte
    //fra = document.getElementById('fradato').value.replace(/-/g, "");    
    //datoKlikk(document.getElementById(fra));
    //alert('Du bytter annonseutseende. Det nye utseende kan ha andre innrykksdager enn de du har valgt.');
    //window.status = valgt_annonsepakke.id;
}

function activeAnnonsetype(antall, inactiveCSS, activeCSS) { 

  for (i=0; i<antall; i++) {
    td1 = document.getElementById("anntype1_"+i);
    td2 = document.getElementById("anntype2_"+i);
    
    if (td1.getElementsByTagName('input')[0].checked) {
      cl = activeCSS;
    } else {
      cl = inactiveCSS;
    }
    td1.className=cl;
    td2.className=cl+"b";
  }
}

function activeAnnonsemedie(antall, inactiveCSS, activeCSS) { 
  for (i=0; i<antall; i++) {
    td1 = document.getElementById("annmedie1_"+i);
    td2 = document.getElementById("annmedie2_"+i);
    
    if (td1.getElementsByTagName('input')[0].checked) {
      cl = activeCSS;
    } else {
      cl = inactiveCSS;
    }
    td1.className=cl;
    td2.className=cl+"b";
  }
}

function samtykke_bekreftet(feltid) {
    if (cb = document.getElementById(feltid)) {
        if (!cb.checked) {
            alert("Du må akseptert samtykkeerklæringen før du fortsetter!");
            return false;
        }
    }
    return true;
}


function betingelser_bekreftet(felt) {
  if (! felt[1].checked) {
    alert("Du må akseptert betingelsene før du fortsetter!");
    return false;
  }
  return true;
}


function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
}



function strltrim() {
    return this.replace(/^\s+/,'');
}

function strrtrim() {
    return this.replace(/\s+$/,'');
}

function ltrim(string) {
    return string.replace(/^\s+/,'');
}

function rtrim(string){
    return string.replace(/\s+$/,'');
}


function trim(string){
    s = string.replace(/^\s+/,'');
    return s.replace(/\s+$/,'');
}



function cc_check(avisid){
    if(document.pressed == 'Tilbake' || document.pressed == 'Avbryt') {
        return true;
    }
    var annonse = document.getElementsByName('annonse')[0];
    annonse.kortnummer.value = annonse.kortnummer.value.replace(/\D+/g,'');
    var myDate = new Date();
    yy = "0" + "" + (myDate.getYear() - 100);
    mm = myDate.getMonth() + 1;
    if (mm < 10) {
        mm = "0" + "" + mm;
    }
    
    //Betalers navn og adresse skal kun med når avisid != 10000
    if (avisid != 10000) {
    if (annonse.betaling_fornavn.value.length < 3) {
        alert('Du må oppgi fornavn');
        annonse.betaling_fornavn.focus();
        return false;
    }
    else if (annonse.betaling_etternavn.value.length < 3) {
        alert('Du må oppgi etternavn');
        annonse.betaling_etternavn.focus();
        return false;
    }
    else if (annonse.betaling_adresse.value.length < 2) {
        alert('Du må oppgi addresse');
        annonse.betaling_adresse.focus();
        return false;
    }
    else if (annonse.betaling_postnummer.value.length < 3) {
        alert('Du må oppgi postnummer');
        annonse.betaling_postnummer.focus();
        return false;
    }
    else if (annonse.betaling_poststed.value.length < 3) {
        alert('Du må oppgi poststed');
        annonse.betaling_poststed.focus();
        return false;
    }
    }
    if (annonse.kortnummer.value.length < 16) {
        alert('Du må oppgi et gyldig kortnummer (16 tegn)');
        annonse.kortnummer.focus();
        return false;
    }
    else if (annonse.exp_mm.value == '01' && annonse.exp_yy.value == '04'){
        alert('Du må oppgi utløpsdato');
        annonse.exp_mm.focus();
        return false;
    }
    else if (annonse.exp_yy.value == yy && annonse.exp_mm.value <= mm){
        alert('Du må oppgi utløpsdato frem i tid');
        annonse.exp_mm.focus();
        return false;
    }
    else {
        annonse.kn_neste.disabled=true;
    }
}


function confirmText(text) {
    var agree=confirm(text);
    if (agree) 
        return true;
    else
        return false;
}


function removeRowFromTable(tblID, theid) {
    var hid  = tblID + '_id_' + theid;
    var hidden_id = document.getElementById(hid);     // Skal slettes: hidden_id.value    
    //alert(tblID + ' ' + theid + ' ' + hidden_id);
    var tbl = document.getElementById(tblID);
    
    if (hidden_id != null){
        //legg til hiddenfelt vi kan plukke opp i lagre.php så vi får slettet fra session-objektet
        var h = document.createElement('input');
        h.setAttribute('type', 'hidden');
        h.setAttribute('name', 'slettes_' + '[]');
        h.setAttribute('value', hidden_id.value);
        tbl.appendChild(h);
    }
    
    var re = new RegExp(theid.toString());
    for (i=tbl.rows.length-1; i>=0; i--) {
        //alert(re + ' ' + tbl.rows[i].id);
        if (tbl.rows[i].id.match(re)) {
            tbl.deleteRow(i);
        }
    }
    return true;
}

function addRow(tbl, id, name){ 
	var lastRow = tbl.rows.length;
	var iteration = lastRow;	
	var row = tbl.insertRow(lastRow);
    row.setAttribute('id', name + '_' + id);

	// venstre
	var cellLeft = row.insertCell(0);
	cellLeft.setAttribute('width', '7');
    cellLeft.setAttribute('class', 'zmandatory');
	var textNode = document.createTextNode(' ');
	cellLeft.appendChild(textNode);
    
	// midten
	var cellCenter = row.insertCell(1);
	cellCenter.setAttribute('width', '20%');
    cellCenter.setAttribute('vAlign', 'top');

    var el = document.createElement('input');
    el.setAttribute('type', 'text');
    el.setAttribute('name', name + '_name' + '[]');
    el.setAttribute('size', '15');
    el.setAttribute('style', 'font-weight:bold;');
    cellCenter.appendChild(el);    
    var divNode = document.createElement('DIV');
    divNode.innerHTML = '<nobr>Vis som punktliste</nobr>';
    //cellCenter.appendChild(divNode);

    var el = document.createElement('input');
    el.setAttribute('type', 'checkbox');
    //el.onclick = function() { alert(this.value) };
    el.onclick = function() {
        var foo = document.getElementById('hidden_' + id);
        var bar = document.getElementById('textarea_id_' + id);
        toggle(this, foo);
    };
    divNode.appendChild(el);

    var el2 = document.createElement('input');
    el2.setAttribute('type', 'hidden');
    el2.setAttribute('id', 'hidden_' + id);
    el2.setAttribute('name', name + '_punktliste' + '[]');
    el2.setAttribute('value', id);
    divNode.appendChild(el2);
    cellCenter.appendChild(divNode);


	// høyre
	var cellRight = row.insertCell(2);
    cellRight.setAttribute('width', '80%');
    var el = document.createElement('textarea');
    el.setAttribute('name', name + '_value' + '[]');
    el.setAttribute('id', 'textarea_id_' + id);
    el.setAttribute('rows', '8');
    el.setAttribute('cols', '45');
    cellRight.appendChild(el);   

    // hiddenfelt for å få med ID for sletting
    var el2 = document.createElement('input');
    el2.setAttribute('type', 'hidden');
    el2.setAttribute('id', 'hidden_' + id);
    el2.setAttribute('name', name + '_id' + '[]');
    el2.setAttribute('value', id);
    cellRight.appendChild(el2);   
} // function addRow()

//addField('om_stillingen', 'om_stillingen', true);
function addField(tblID, name, edit_name) {
    var tbl = document.getElementById(tblID);
    var uniq = unique();
	var lastRow = tbl.rows.length;
    addRow(tbl, uniq, name);

	var row = tbl.insertRow(tbl.rows.length);
    row.vAlign = 'top';
    row.setAttribute('vAlign', 'top');
    row.setAttribute('id', 'butt_' + uniq);

    var cell1 = row.insertCell(0);
    cell1.vAlign = 'top';
	cell1.setAttribute('width', '7');

    var cell2 = row.insertCell(1);
	cell2.setAttribute('width', '20%');
    cell2.vAlign = 'top';

    var cell3 = row.insertCell(2);
	cell3.setAttribute('width', '80%');
    cell3.vAlign = 'top';


	var butt = document.createElement('BUTTON');
    butt.setAttribute('type', 'button');
    butt.setAttribute('class', 'zbutton');
	var buttext = document.createTextNode('Fjern');
    butt.className='zbutton';
	butt.appendChild(buttext);
    butt.onclick = function() {
        removeRowFromTable(tblID, uniq);
    };
    
    cell3.appendChild(butt);
}

function addContactRow(tbl, id, field, value){ 
	var lastRow = tbl.rows.length;
	var iteration = lastRow;	
	var row = tbl.insertRow(lastRow);
    field2 = field.replace(/\//, "_"); //javascript liker ikke / i variabelnavn
    field2 = field2.replace(/-/, "_"); //javascript liker ikke - i variabelnavn
    row.setAttribute('id', field + '_' + id);

	// venstre
	var cellLeft = row.insertCell(0);
	var textNode = document.createTextNode(' ');
	cellLeft.appendChild(textNode);
	cellLeft.setAttribute('width', '7');
    cellLeft.setAttribute('class', 'zmandatory');
    
	// midten
	var cellCenter = row.insertCell(1);
    var textNode = document.createTextNode(ucFirst(field));
    cellCenter.appendChild(textNode);
	cellCenter.setAttribute('width', '20%');
    cellCenter.setAttribute('vAlign', 'top');


	// høyre
	var cellRight = row.insertCell(2);
    var el = document.createElement('input');
    el.setAttribute('type', 'text');
    el.setAttribute('name', 'contact_' + field2 + '[]');
    el.setAttribute('size', '30');
    el.setAttribute('value', value);
    cellRight.appendChild(el);    
    cellRight.setAttribute('width', '80%');

} // function addContactRow()


function addContact(tblID, name, selected_contect) {
    var sel = document.getElementById(selected_contect);
    var sel_person = sel.value;
    var sel_array = sel_person.split(";");

    var tbl = document.getElementById(tblID);
    var uniq = unique();
	var lastRow = tbl.rows.length;

    addContactRow(tbl, uniq, 'navn', sel_array[0]);
    addContactRow(tbl, uniq, 'tittel', sel_array[1]);
    addContactRow(tbl, uniq, 'e-post', sel_array[2]);
    addContactRow(tbl, uniq, 'telefon/mobil', sel_array[3]);

	var lastRow = tbl.rows.length;
    var Row = tbl.rows[lastRow-1];
    var lastCell = Row.cells.length;
    var Cell = Row.cells[lastCell-1];

    // hiddenfelt for å få med ID for sletting
    var el2 = document.createElement('input');
    el2.setAttribute('type', 'hidden');
    el2.setAttribute('id', 'hidden_' + uniq);
    el2.setAttribute('name', 'contact_id' + '[]');
    el2.setAttribute('value', uniq);
    Cell.appendChild(el2);   

    //var Cell = Row.cells[lastCell];
    //alert(lastRow + ' ' + Row.cells.length + ' ' + Row.cells[2].innerHTML);
    //var lastCell = tbl.rows[lastRow].cells.length;
    //alert(lastRow + ' ' + lastCell + ' ' + lastCell.innerHTML);

	var row = tbl.insertRow(tbl.rows.length);
    row.setAttribute('id', 'butt_' + uniq);
    var cell1 = row.insertCell(0);
	cell1.setAttribute('width', '7');
    var cell2 = row.insertCell(1);
	cell2.setAttribute('width', '20%');
    var cell3 = row.insertCell(2);
	cell3.setAttribute('width', '80%');
	var butt = document.createElement('BUTTON');
    butt.setAttribute('type', 'button');
    butt.setAttribute('class', 'zbutton');
	var buttext = document.createTextNode('Fjern');
    butt.className='zbutton';
	butt.appendChild(buttext);

    butt.onclick = function() {
        removeRowFromTable(tblID, uniq);
    };
    cell3.appendChild(butt);
}


function ucFirst(s) {
	var c = s.charAt(0);
    
	if (parseInt(s.length)==1)
		return c.toUpperCase();
	else
		return c.toUpperCase() + s.slice(1).toLowerCase();
}

function unique() {
    var uniq =  new Date(); 
    return uniq.getTime(); 
}


function toggle(cb, hidden) {
    //alert(cb + ' ' + hidden + ' ' + hidden.value);
    hidden.value = cb.checked;
}

function getexpirydate( nodays){
    var UTCstring;
    Today = new Date();
    nomilli=Date.parse(Today);
    Today.setTime(nomilli+nodays*24*60*60*1000);
    UTCstring = Today.toUTCString();
    return UTCstring;
}

function getcookie(cookiename) {
    var cookiestring=""+document.cookie;
    var index1=cookiestring.indexOf(cookiename);
    if (index1==-1 || cookiename=="") return ""; 
    var index2=cookiestring.indexOf(';',index1);
    if (index2==-1) index2=cookiestring.length; 
    return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}


function setcookie(name,value,duration){
    cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
    document.cookie=cookiestring;
    if(!getcookie(name)){
        return false;
    }
    else{
        return true;
    }
}

function sjekk_annonsetekst(){
    var field = document.getElementById("annonsetekst").value;
    //check email
    email = /\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+/;
    //check url
    url = /http[s]?:\/\/\w+([\.-]?\w+)*(\.\w{2,})+/;
    url2 = /\w{2,}\.\w{2,}/;
    //check phone
    phone = /\d\s*\d\s*\d\s*\d\s*\d\s*\d\s*\d\s*\d\s*/;

    email_ok = email.test(field);
    url_ok = url.test(field);
    url2_ok = url2.test(field);
    phone_ok = phone.test(field);

    var valgt_annonsepakke = annonsepakker[radioselected()];
    if ((email_ok || url_ok || url2_ok || phone_ok) == false) {
        if (valgt_annonsepakke.annonsetekst_viser_telefon == 'f') {
            alert('Du ser ut til å mangle kontaktinformasjon (e-post, telefon eller url) i feltet "Annonsetekst"');
        return false;
    }
    }
    return true;
}


function toggleVisibility(id) {
    var obj = null;
    if ( (document.getElementById && (obj = document.getElementById(id))) || (document.all && (obj = eval("document.all."+id)))) {
        obj.style.visibility = obj.style.visibility == "hidden" ? "visible" : "hidden";
    }
    else if (document.layers && (obj = document.layers[id])) {
        obj.visibility = obj.visibility == "hide" ? "show" : "hide";
    }
}

function soknadsfrist(id){
    var dd = document.getElementById("utlopsdato_dd");
    var mm = document.getElementById("utlopsdato_mm");
    var yy = document.getElementById("utlopsdato_yy");
    var soknadsfrist = document.getElementById("id_soeknadsfrist");
    var dato = dd.value + '.' + mm.value + '.' + yy.value;
    soknadsfrist.value = dato;
    //alert("Søknadsfrist er endret til " + soknadsfrist.value);
}


// setCategory
// fyller <input> i <select> med id elementId i to nivåer (første nivå som optgroup)
// fyller <input> i <select> med id elementId2 for "barn" av undernivåene i elementid
// forventer globalt array kategorisering
function setCategory(elementId, elementId2, selectedCategoryId, selectedCategoryId2){
    var sel = document.getElementById(elementId);
    for (var i = 0; i < kategorisering.length; i++) {
        if (kategorisering[i].parent == 10) {
            optGroup = document.createElement('optgroup');
            optGroup.label = kategorisering[i].navn;
            for (var j = 0; j < kategorisering.length; j++) {
                if (kategorisering[j].parent == kategorisering[i].id) {
                    option = document.createElement('option');
                    option.value = kategorisering[j].id;
                    option.innerHTML = kategorisering[j].navn;
                    if (option.value == selectedCategoryId) {
                        option.selected = true;
                    }
                    optGroup.appendChild(option);
                }
            }
            sel.appendChild(optGroup);
        }
    }
    changeCategory(elementId2, selectedCategoryId, selectedCategoryId2);
}

// changeCategory
// endrer <input> i <select> med id elementId basert på categoryId
// setter SELECTED hvis selectedCategoryId
// forventer globalt array kategorisering
function changeCategory(elementId, categoryId, selectedCategoryId){
    var kat2 = document.getElementById(elementId);
    kat2.disabled = false;
    kat2.options.length = 0;
    kat2.options[0] = new Option(" Velg underkategori ", '');
    for (var i = 0; i < kategorisering.length; i++) {
        if (kategorisering[i].parent == categoryId) {
            kat2.options[kat2.options.length] = new Option(kategorisering[i].navn, kategorisering[i].id);
            if (kategorisering[i].id == selectedCategoryId)
                kat2.options[kat2.options.length-1].selected = true;
            for (var j = 0; j < kategorisering.length; j++) {
                if (kategorisering[j].parent == kategorisering[i].id) {
                    kat2.options[kat2.options.length] = new Option(kategorisering[j].navn, kategorisering[j].id);
                    kat2.options[kat2.options.length-1].style.paddingLeft = "2em";
                    if (kategorisering[j].id == selectedCategoryId)
                        kat2.options[kat2.options.length-1].selected = true;
                    for (var k = 0; k < kategorisering.length; k++){
                        if (kategorisering[k].parent == kategorisering[j].id){
                            kat2.options[kat2.options.length] = new Option(kategorisering[k].navn, kategorisering[k].id);
                            kat2.options[kat2.options.length-1].style.paddingLeft = "4em";
                            if (kategorisering[k].id == selectedCategoryId)
                                kat2.options[kat2.options.length-1].selected = true;
                        }
                    }
                }
            }
        }
    }
    if (kat2.options.length == 1) {
        kat2.options[0] = null;
        kat2.options[0] = new Option("-", "");
        kat2.disabled = true;
    }
}

