
var startExtent;
var selectedValues = {};
var month_text=new Array('januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december');
var selectMapLoaded = false;
var currentMapWKT;
var debug = false;
var viewProfile = 'ivart_view';
var selectProfile = 'ivart_select';
//viewProfile = selectProfile;
var d=document; // shorter reference
var nn4 = d.layers; // netscape 4?
var nua = navigator.userAgent;
var op=nua.indexOf('Opera')!=-1;
var nn6=((nua.indexOf('Netscape6/')!=-1)||(nua.indexOf('Netscape/7')!=-1))||(nua.indexOf('Gecko')!=-1);
var ie=(!nn4)&&(!op)&&(!nn6);

var ran = parseInt(100000*Math.random());



function doload()
{
    var mapext = getExtent();
    setCurrentDate();
    var fset = document.getElementById('page0');
    var f = document.createElement("iframe");
    f.id = 'mainmapframe';
    f.name = 'mainmapframe';
    f.scrolling = 'no';
    f.frameBorder = '0';
    f.src = 'loading.html';
    f.style.position='absolute';
    f.style.top='0px';
    f.style.left='235px';
    f.style.width='505px';
    f.style.height='399px';
    f.style.border='0px none';
    fset.appendChild(f);
    setTimeout("document.getElementById('mainmapframe').src = '/cbkort?profile="+viewProfile+"&"+mapext+"';",100);
}


function getExtent()
{
    var mapext="";
    var urlParams = location.search.split("&");
    for(var i=0; i < urlParams.length; i++)
    {
        if(urlParams[i].indexOf("extent") > -1)
         {
           mapext = urlParams[i].replace("extent","mapext");
            if(mapext.split(",").length != 4)
             {  
              alert("Extent parameteren er ikke gyldig!")
                mapext="";
                break;
             }
          }
    }
    return mapext;
}

var currentDate_day = 0;
var currentDate_month = 0;
function setCurrentDate()
{
    var html = '<select id="selectday'+ran+'" name="selectday'+ran+'" style="margin-right:7px;" onchange="dayChanged();setProgresText();"></select>' +
               '<select id="selectmonth'+ran+'" name="selectmonth'+ran+'" style="margin-right:7px;" onchange="monthChanged();setProgresText();"></select>';
    document.getElementById('selectdate').innerHTML = html;


    var currentTime = new Date();
    var month = currentTime.getMonth() + 1;
    month=((month < 10) ? "0" : "") + month;
    var day = currentTime.getDate()
    day=((day < 10) ? "0" : "") + day;
    var year = currentTime.getFullYear();
    var e = document.getElementById('selectmonth'+ran);
    e.options.length = 0;
    for(var i=0;i<month_text.length;i++)
    {
        var yeartext = currentTime.getFullYear();
        if(i>currentTime.getMonth())
            yeartext = currentTime.getFullYear()-1;
            
        if(parseInt(yeartext) >= 2009)
        {
            var m = i+1;
            m=((m < 10) ? "0" : "") + m;
            var defaultsel = (i == currentTime.getMonth());
            if (defaultsel) currentDate_month = e.options.length;
            e.options[e.options.length] = new Option(month_text[i]+' '+yeartext,yeartext+'-'+m,defaultsel,defaultsel);
        }
    }
    e = document.getElementById('selectday'+ran);
    e.options.length = 0;
    var max = caldays(month,year);
    for(var i=1;i<=max;i++)
    {
        var d=((i < 10) ? "0" : "") + i;
        var defaultsel = (i == currentTime.getDate());
        if (defaultsel) currentDate_day = e.options.length;
        e.options[e.options.length] = new Option(i,d,defaultsel,defaultsel);
        if(defaultsel) i=100;
    }
    
    setTimeout(setCurrentDate_today,3000);
}
function setCurrentDate_today()
{
    document.getElementById('selectday'+ran).options.selectedIndex = currentDate_day;
    document.getElementById('selectmonth'+ran).options.selectedIndex = currentDate_month;
    
    dateChanged();
}


function dateChanged()
{
    var ed = document.getElementById('selectday'+ran);
    var em = document.getElementById('selectmonth'+ran);
    selectedValues.datetext = ed.options[ed.options.selectedIndex].text + '. '+em.options[em.options.selectedIndex].text;
    selectedValues.date = em.options[em.options.selectedIndex].value +'-'+ ed.options[ed.options.selectedIndex].value;
}
function dayChanged()
{
    dateChanged();
}
function monthChanged()
{
    var ed = document.getElementById('selectday'+ran);
    var em = document.getElementById('selectmonth'+ran);
    
    var m = em.options[em.options.selectedIndex].value.split('-');
    
    var antal = caldays(m[1],m[0]);
    var currentTime = new Date();
    var month = currentTime.getMonth() + 1;
    month=((month < 10) ? "0" : "") + month;

    e = document.getElementById('selectday'+ran);
    var sel = e.options.selectedIndex + 1;
    e.options.length = 0;
    for(var i=1;i<=antal;i++)
    {
        var defaultsel = (i == 1 || i == sel);
        var d=((i < 10) ? "0" : "") + i;
        e.options[e.options.length] = new Option(i,d,defaultsel,defaultsel);
        if(month == m[1] && i == currentTime.getDate()) i = 100;
    }

    dateChanged();
}
function caldays(m,y)
{
    if(m==01||m==03||m==05||m==07||m==08||m==10||m==12)
        return 31;	        
    else if (m==04||m==06||m==09||m==11)
        return 30;		  
    else
    {
        if((y%400==0) || (y%400==0 && y%100!=0))
            return 29;
        else 
            return 28;
    }
}	

function groupClick(groupnum)
{
    groupArray[groupnum].visible = !groupArray[groupnum].visible;
    if(groupArray[groupnum].visible)
    {
        document.getElementById('groupimg_'+groupnum).src = '/images/custom/down.gif';
        document.getElementById('group_themes_'+groupnum).style.display = 'block';
    }
    else
    {
        document.getElementById('groupimg_'+groupnum).src = '/images/custom/right.gif';
        document.getElementById('group_themes_'+groupnum).style.display = 'none';
    }

}
function layerClick(layername)
{
    var a = getLayerNumber(layername);
    layerArray[a].visible = !layerArray[a].visible;
    updateMap(viewProfile);

}
function showPage(page)
{
    switch(page)
    {
        case 0: //vis startsiden
            document.getElementById('progresbox').style.display = 'none';
        break;
        case 1: //Hvad
            if(!window.frames.mainmapframe)
                return;
            if(!window.frames.mainmapframe.getIvartExtent)
                return;
            startExtent = window.frames.mainmapframe.getIvartExtent();
            if(!startExtent)
                return;
            document.getElementById('progresbox').style.display = 'block';

            if(!selectMapLoaded)
                loadSelectMap();
            else
                window.frames.selectmapframe.select_setZoomin();
            
        break;
        case 2: //Hvormange og hvornår
            if(!selectedValues.layertext && debug == false)
            {
                alert('Du skal vælge hvad du har set inden du går videre!');
                return;
            }
            // set date
            if(!selectedValues.date)
            {
                dateChanged();
                
            }
            setProgresText();
            document.getElementById('description_page2').innerHTML = document.getElementById('description').innerHTML;
            document.getElementById('progresbox').style.display = 'block';
            
        break;
        case 3: //Hvor
            if(!selectedValues.artcount && debug == false)
            {
                alert('Vælg antal inden du går videre!');
                return;
            }
            document.getElementById('progresbox').style.display = 'none';
        break;
        case 4: //vis startsiden
            if(!selectedValues.wkt && debug == false)
            {
                alert('Udpeg et punkt i kortet inden du går videre!');
                return;
            }
            document.getElementById('progresbox').style.display = 'block';
            
            if(selectedValues.wkt && currentMapWKT != selectedValues.wkt)
            {
                currentMapWKT = selectedValues.wkt;
                var url = '/cbkort?page=createmap&profile='+selectProfile+'&wkt='+selectedValues.wkt;
                var cbh = new CBhttp();
                cbh.executeUrlAsync(url, true, showSmallMap);
            }
        break;
        case 5: //vis confirm
            if(!selectedValues.navn && debug == false)
            {
                alert('Indtast navn!')
                return;
            }
            if(!selectedValues.adresse && debug == false)
            {
                alert('Indtast adresse!')
                return;
            }
            if(!selectedValues.mail && debug == false)
            {
                alert('Indtast e-mail!')
                return;
            }
        
            if(document.getElementById('imagefile').value!='')
                document.getElementById('uploadForm').submit();
                
            document.getElementById('confirm_art').innerHTML = selectedValues.layertext;
            document.getElementById('confirm_count').innerHTML = selectedValues.artcounttext;
            document.getElementById('confirm_date').innerHTML = selectedValues.datetext;
            document.getElementById('confirm_info').innerHTML = (selectedValues.navn || '')+'<br/>'+(selectedValues.adresse || '')+'<br/>Telefon: '+(selectedValues.telefon || '')+'<br/>Mail: '+(selectedValues.mail || '')+'<br/>';
            document.getElementById('confirm_tekst').innerHTML = (selectedValues.tekst || '');
            document.getElementById('confirm_map_img').src = selectedValues.mapimg;
            document.getElementById('progresbox').style.display = 'none';
        break;
        case 6: //vis kvitering
            document.getElementById('progresbox').style.display = 'none';
        break;
    }
    hideAllPagesAndShow(page);
}
function hideAllPagesAndShow(page)
{
    document.getElementById('page0').style.display = 'none';
    document.getElementById('page1').style.display = 'none';
    document.getElementById('page2').style.display = 'none';
    //document.getElementById('page3').style.display = 'none';
    document.getElementById('page3').style.top = '700px';
    document.getElementById('page4').style.display = 'none';
    document.getElementById('page5').style.display = 'none';
    document.getElementById('page6').style.display = 'none';

    if(page == 3)
        document.getElementById('page'+page).style.top = '0px';
    else
        document.getElementById('page'+page).style.display = 'block';
}
function showSmallMap(pComp)
{
    img = pComp.get(0).getValue();
    selectedValues.mapimg = '/tmp/'+img;
    document.getElementById('map_img').src = '/tmp/'+img;
    document.getElementById('prog_step3_box').style.display = 'block';
}
function loadSelectMap()
{
    var fset = document.getElementById('page3');
    var f = document.createElement("iframe");
    f.id = 'selectmapframe';
    f.name = 'selectmapframe';
    f.scrolling = 'no';
    f.frameBorder = '0';
    f.src = 'loading.html';
    f.style.position='absolute';
    f.style.top='49px';
    f.style.left='235px';
    f.style.width='505px';
    f.style.height='315px';
    f.style.border='0px none';
    f.style.display='block';
    fset.appendChild(f);
    setTimeout("document.getElementById('selectmapframe').src = '/cbkort?profile="+selectProfile+"';",100);
}
function getLayerNumber(layername)
{
    for(var i=0;i<layerArray.length;i++)
    {
        if(layerArray[i].layer == layername)
            return i;
    }
}
function setLayer(backgroundlayer,profile)
{
    currentbackgroundlayer = backgroundlayer; //number
    updateMap(profile);
}
function showAll(checked)
{
    for(var i=0;i<layerArray.length;i++)
    {
        layerArray[i].visible = checked;
        document.getElementById('themescheckbox_'+layerArray[i].layer).checked = checked;
    }
    updateMap(viewProfile);
}
function updateMap(profile)
{
    var l = backgroundlayer[currentbackgroundlayer];
    for(var i=0;i<layerArray.length;i++)
    {
        if(layerArray[i].visible)
            l += ' '+layerArray[i].layer;
    }
    if(profile=='ivart_view')
        window.frames.mainmapframe.setIvartLayers(l);
    else
        window.frames.selectmapframe.setIvartLayers(l);
}

function setProgresText()
{
    if(selectedValues.group)
        document.getElementById('prog_step1').innerHTML = '<b>'+selectedValues.group+'</b>';
    if(selectedValues.layertext)
        document.getElementById('prog_step1').innerHTML = '<b>'+selectedValues.group+'</b>: '+selectedValues.layertext;
    if(selectedValues.artcount)
    {
        document.getElementById('prog_step2_box').style.display = 'block';
        document.getElementById('prog_step2').innerHTML = selectedValues.artcounttext;
    }
    else
    {
        document.getElementById('prog_step2_box').style.display = 'none';
    }
    if(selectedValues.date)
    {
        document.getElementById('prog_step21_box').style.display = 'block';
        document.getElementById('prog_step21').innerHTML = selectedValues.datetext;
    }
    else
    {
        document.getElementById('prog_step21_box').style.display = 'none';
    }
}

function groupSelected(groupnum)
{
    selectedValues.layertext = null;
    selectedValues.artcount = null;
    selectedValues.artcounttext = null;
    var e = document.getElementById('selectart');
    e.disabled = false;
    e.options.length = 0;
    for(var i=0;i<layerArray.length;i++)
    {
        if(layerArray[i].group == groupnum)
            e.options[e.options.length] = new Option(layerArray[i].displayname,layerArray[i].layer);
    }
    document.getElementById('description').style.display = 'none';
    selectedValues.group = groupArray[groupnum].displayname;
    setProgresText();
}
function layerSelected(layer)
{
    selectedValues.artcount = null;
    selectedValues.artcounttext = null;
    var l = layerArray[getLayerNumber(layer)];
    selectedValues.layertext = l.displayname;
    selectedValues.layer = layer;
    document.getElementById('description_img').src = l.img;
    document.getElementById('description_img').alt = l.alt;
    document.getElementById('description_img').title = l.alt;
    document.getElementById('description_header').innerHTML = l.displayname;
    document.getElementById('description_uds').innerHTML = l.udseende;
    document.getElementById('description_opr').innerHTML = l.oprindelse;
    document.getElementById('description_hvo').innerHTML = l.hvor;

    document.getElementById('page3art').innerHTML = l.displayname;
    

    if(l.link.href)
    {
        document.getElementById('description_link').innerHTML = '<a href="'+l.link.href+'" target="_blank">'+l.link.text+'</a>';
        document.getElementById('description_linkbox').style.display = 'block';
    }
    else
    {
        document.getElementById('description_linkbox').style.display = 'none';
    }

    // set count
    var h = '';
    for(var i = 0;i<l.artCount.length;i++)
    {
        var a = l.artCount[i];
        h+='<input type="radio" name="artcount" value="'+a.value+'" onclick="artcountSelected(this.value,\''+a.text+'\');"><span style="font-weight:bold;">'+a.text+'</span>';
    }
    var header = 'Hvor mange så du?';
    if(l.artCountHeader!='')
        header = l.artCountHeader;
    document.getElementById('artcount_header').innerHTML = header;
    document.getElementById('artcount').innerHTML = h;
    
    
    document.getElementById('description').style.display = 'block';
    setProgresText();
}
function setWKT(wkt)
{
    selectedValues.wkt = wkt;
    document.getElementById('prog_step3_box').style.display = 'none';

}
function abc123()
{
    alert('abc');
}
function setimagefile(parentid,filename,errorTxt)
{
	if(errorTxt)
	{
	  alert('Fil ikke gemt:' + errorTxt);
	  return;
	}
    selectedValues.imagefile = filename;
    var pos = filename.lastIndexOf('.');
    ext = filename.substr(pos,filename.length);
    
    var k = ext + '$';
    var re1 = new RegExp(k,'g') ;
    var t = re1.exec(filename);
    filename = filename.replace(re1,'_thumb'+t[0]);
    
    if(selectedValues.imagefile)
    {
        document.getElementById('confirm_imgbox').style.display = 'block';
        document.getElementById('confirm_img').src = filename;
    }
    else
    {
        document.getElementById('confirm_imgbox').style.display = 'none';
    }

}
function setInput_navn(val)
{
    selectedValues.navn = val;
}
function setInput_adresse(val)
{
    selectedValues.adresse = val;
}
function setInput_telefon(val)
{
    selectedValues.telefon = val;
}
function setInput_mail(val)
{
    selectedValues.mail = val;
}
function setInput_tekst(val)
{
    val = val.replace(/\n/g,'<br/>');
    selectedValues.tekst = val;
}
function artcountSelected(val,text)
{
    selectedValues.artcount = val;
    selectedValues.artcounttext = text;
    setProgresText();
}

function printPage()
{
    
}
function dtcphtsswr(val)
{
    if(!val)
        return '';
    val = val.replace(/;/g,'.');
    val = val.replace(/[dD][eE][lL][eE][tT][eE]/g,'');
    return encode64(val);
}
function clear()
{
    selectedValues.wkt = null;
    selectedValues.group = null;
    selectedValues.layer = null;
    selectedValues.layertext = null;
    selectedValues.artcount = null;
    selectedValues.artcounttext = null;
    selectedValues.imagefile = null;
    selectedValues.tekst = null;
    selectedValues.date = null;
    
    var e = document.getElementById('prog_step3_box');
        if(e) e.style.display = 'none';
    
    window.frames.selectmapframe.select_clear();
    
    document.getElementById('imagefile').value = '';
    document.getElementById('input_tekst').value = '';
    document.getElementById('confirm_imgbox').style.display = 'none';
    document.getElementById('confirm_img').src = '';
    
    groupClaer();






    
}
function groupClaer()
{
    for(var i=0;i<4;i++)
    {
        var e = document.getElementById('group_'+i);
        if(e) e.checked = false;
    }


    var e = document.getElementById('selectart');
    e.disabled = true;
    e.options.length = 0;
    for(var i=0;i<layerArray.length;i++)
    {
        e.options[e.options.length] = new Option(layerArray[i].displayname,layerArray[i].layer);
    }
    document.getElementById('description').style.display = 'none';
    setProgresText();
}


function save()
{
    var url = '/cbkort?page=ivart.save';
    url += '&wkt_base64='+dtcphtsswr(selectedValues.wkt);
    url += '&type_base64='+dtcphtsswr(selectedValues.group);
    url += '&artid_base64='+dtcphtsswr(selectedValues.layer);
    url += '&art_base64='+dtcphtsswr(selectedValues.layertext);
    url += '&antal_base64='+dtcphtsswr(selectedValues.artcount);
    url += '&image_base64='+dtcphtsswr(selectedValues.imagefile);
    url += '&navn_base64='+dtcphtsswr(selectedValues.navn);
    url += '&adresse_base64='+dtcphtsswr(selectedValues.adresse);
    url += '&email_base64='+dtcphtsswr(selectedValues.mail);
    url += '&tlfnr_base64='+dtcphtsswr(selectedValues.telefon);
    url += '&beskrivelse_base64='+dtcphtsswr(selectedValues.tekst);
    url += '&fdate_base64='+dtcphtsswr(selectedValues.date);

    var url = '/cbkort?page=ivart.save';
    url += '&wkt_base64='+dtcphtsswr(selectedValues.wkt);
    url += '&type_base64='+dtcphtsswr(selectedValues.group);
    url += '&artid_base64='+dtcphtsswr(selectedValues.layer);
    url += '&art='+selectedValues.layertext;
    url += '&antal_base64='+dtcphtsswr(selectedValues.artcount);
    url += '&image='+selectedValues.imagefile;
    url += '&navn='+selectedValues.navn;
    url += '&adresse='+selectedValues.adresse;
    url += '&email='+selectedValues.mail;
    url += '&tlfnr='+selectedValues.telefon;
    url += '&beskrivelse='+selectedValues.tekst;
    url += '&fdate_base64='+dtcphtsswr(selectedValues.date);

    var cbh = new CBhttp();
    cbh.executeUrlAsync(url, true, null);
    
    window.frames.mainmapframe.setIvartLayers();
    
    clear();
}
