function onImgError(source, pixels)
{
    pixels = (pixels != undefined) ? pixels : 180;
    source.src = "/imgs/noimage_"+pixels+"x"+pixels+".jpg";
    source.onerror = "";
    return true;
}

function errorOverlay(){
    jQuery.blockUI({ message: $('#erroroverlay'), css: { top: '200px' } });
    $('#erroroverlayOK').click(function() {
        $.unblockUI();
        if(document.getElementById('fh_search'))
            document.getElementById('fh_search').focus();
    });
}

function msgOverlay(msg){
    jQuery.blockUI({ message: $('#' + msg), css: { top: '200px' } });
    $('#' + msg + 'OK').click(function() {
        $.unblockUI();
    });
}

function localizedMsgOverlay(msgItem, localizedMessage){
    $('#' + msgItem + 'Localized').html(localizedMessage);
    jQuery.blockUI({ message: $('#' + msgItem), css: { top: '200px' } });
    $('#' + msgItem + 'OK').click(function() {
        $.unblockUI();
    });
}

function htmlOverlay(id){
    jQuery.blockUI({ message: $('#' + id), css: { top: '10%', width: '380px', textAlign: 'left', padding: '0px' } });
    $('#OK').click(function() {
        $.unblockUI();
    });
    $('#park_OK').click(function() {
        $.unblockUI();
    });    
}

function noscroll(event) {
    if (!event) event = window.event;
    if (event.preventDefault) event.preventDefault();
	event.returnValue = false;
    return false;
}
function scroll(event) {
    if (!event) event = window.event;
	event.returnValue = true;
    return true;
}
//function iframeOverlay(src){
//    var width = $(document).width();
//    var height = $(document).height();
//    jQuery.blockUI({ message: '<div id="framekiller" style="height: 20px; background: url(/imgs/framebar.gif) repeat-x"><span style="float: right; cursor: pointer; margin: 3px;" onclick="unblockUI()"><a>close</a> [x]</span></div><iframe name="popup" id="popup" style="width: 580px; height: '+ ((height/2.5) - 20) +'px; border: none;" class="overlayframe" src="' + src + '"></iframe>', css: { left: (width/2 - 580 / 2), width: '580px', top: '10%', backgroundColor: '#ffffff', height: (height/2.5), textAlign: 'left', padding: '0px' } });
//    window.addEventListener('DOMMouseScroll', noscroll, false);
//    if (!event) event = window.event;
//    window.onmousewheel = document.onmousewheel = noscroll(event);
//}
function blockUI(){
    jQuery.blockUI({ message: null, overlayCSS: { backgroundColor: '#FFFFFF' } });
    //window.addEventListener('DOMMouseScroll', noscroll, false);
    //if (!event) event = window.event;
    //window.onmousewheel = document.onmousewheel = noscroll(event);
}
function unblockUI(){
    $.unblockUI();
    document.body.scroll = 'yes';
    window.removeEventListener('DOMMouseScroll', noscroll, false);
    $('body').css('overflow', 'visible');
}
function process(){
    jQuery.blockUI({ message: '<center><img src="/imgs/uploading12.gif" /><br /><span style="font-size: 14px; color: #CC6600; font-weight: bold">...upload in progress...<span></center>', css: { textAlign: 'center', border: '0px', background: 'transparent' }, overlayCSS: { backgroundColor: '#FFFFFF' } });
}

function processed() {
    jQuery.unblockUI({});
}

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) + "; path=/";

}

function addToFavourites(title,url) {
    if (window.sidebar) {
        window.sidebar.addPanel(title, url,"");
    }
    else if( window.external ) {
        window.external.AddFavorite( url, title);
    }
    else if(window.opera && window.print) {
        return true;
    }
}

function urlencode( str ) {

    var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
    var ret = str.toString();

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    histogram['!']   = '%21';
    histogram['%20'] = '+';

    ret = encodeURIComponent(ret);

    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret)
    }

    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });

    return ret;
}

var http_request = false;
function miniFilter(url) {
  // there are drop down items which are empty lines and have empty values. Prevent blocked UI.
  // Also selecting whitespace and then already selected item again can cause issues since its url value will be #
  if (url == '' || url == '#')
      return false;

  document.body.style.cursor='wait';
  jQuery.blockUI({ message: null, overlayCSS: { backgroundColor: '#FFFFFF' } });

  http_request = false;
  if (window.XMLHttpRequest) {
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/html');
     }
  } else if (window.ActiveXObject) {
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  http_request.onreadystatechange = updateMiniFilter;
  http_request.open('GET', url, true);
  http_request.send(null);
}

function updateMiniFilter() {
  if (http_request.readyState == 4) {
     if (http_request.status == 200) {
        $.unblockUI();
        result = http_request.responseText.split("|");
        var numResult = result.length;
        if(numResult>10) {
            document.getElementById('mf_res').innerHTML=result[0];
            document.getElementById('filterclick').title=result[13];
            document.getElementById('mf_res2').innerHTML=result[0];
            document.getElementById('filterclick2').title=result[13];
            document.getElementById('parkOptions').innerHTML=result[1];
            document.getElementById('arrOptions').innerHTML=result[2];
            document.getElementById('countryOptions').innerHTML=result[3];
            document.getElementById('dateOptions').innerHTML=result[4];
            document.getElementById('periodOptions').innerHTML=result[5];
            document.getElementById('regionOptions').innerHTML=result[6];
            document.getElementById('nropOptions').innerHTML=result[7];
            document.getElementById('fh_location').value=result[9];
            document.getElementById('dateOptions').innerHTML=result[10];
            document.getElementById('calendarquerystring').value=result[11];
            document.body.style.cursor='default';

            // if any park or region selected, then disable Theme list.
            $(document).ready(function() {
                if (document.getElementById('miniPark').selectedIndex > 0
                    || document.getElementById('miniCountry').selectedIndex > 0)
                    $('#miniArr').attr('disabled', 'disabled');
                else
                    $('#miniArr').removeAttr('disabled');
            });
        } else {
            window.alert("problem handling request");
        }
     } else {
        window.alert("problem handling request");
     }
  }
}

function readMapCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
   return null;
}

function setMapCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) +";  path=/";
}
function fixMailing(){
    if((document.getElementById('achternaam').value=="")
    ||(document.getElementById('email').value==""))
    {
        msgOverlay('emptyfield');
    }
    else
    {
       document.getElementById('mailing').submit();
    }
}

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage)
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters))
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
       var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
       var imgTitle = (myImage.title) ?
                     "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
       var imgStyle = "display:inline-block;" + myImage.style.cssText
       var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width
                  + "px; height:" + myImage.height
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
       myImage.outerHTML = strNewHTML
    }
}

function enableShare() {
	$('#share').removeAttr( 'shareDisabled' );
}

function hideShare(e)
{
    $('#share').hide();
	setTimeout(enableShare, 100);
}

function showShare(e)
{
	if ( ($('#share').attr('shareDisabled')==undefined ) ) {
		$('#share').attr( 'shareDisabled', true );
		var position = $('#sharebutton').position();
		$('#share').css({'top':position.top+0+'px','left':position.left+0+'px'});
		$('#share').bind('mouseleave', hideShare );
		$('#share').show();
	}	
}

function deleteCachedKeepShare(){
  var parameters = '?deletedCached=true';

  http_request = false;
  if (window.XMLHttpRequest) {
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/html');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     return false;
  }

  var scriptlocation = 'http://' + window.location.hostname + '/app/';

  scriptlocation = scriptlocation.replace("#favBlock", '');

  http_request.onreadystatechange = function() {}
  http_request.open('GET', scriptlocation + parameters , true);
  http_request.send(null);
}