/* ********* IE6 flicker ********* */

document.onload = function () {
    try {
      document.execCommand('BackgroundImageCache', false, true);
    } catch(e) {}
}


/* ********* font size *********** */

function zoomIn()
{
    setCookie ('cookieSize', parseInt(document.getElementById('menu').style.fontSize) + 2 + 'px', '1', '/', '', '');
    
    document.getElementById('menu').style.fontSize = parseInt(document.getElementById('menu').style.fontSize) + 2 + 'px';
    document.getElementById('content').style.fontSize = parseInt(document.getElementById('content').style.fontSize) + 2 + 'px';
}

function zoomOut()
{
    setCookie ('cookieSize', parseInt(document.getElementById('menu').style.fontSize) - 2 + 'px', '1', '/', '', '');
    
    document.getElementById('menu').style.fontSize = parseInt(document.getElementById('menu').style.fontSize) - 2 + 'px';
    document.getElementById('content').style.fontSize = parseInt(document.getElementById('content').style.fontSize) - 2 + 'px';
}

function getCookie (name) 
{
   var start = document.cookie.indexOf(name+'='); 
   var len = start+name.length+1; 
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
   if (start == -1) return null; 
   var end = document.cookie.indexOf(';',len); 
   if (end == -1) end = document.cookie.length; 
   return unescape(document.cookie.substring(len,end)); 
} 
        
function setCookie (name, value, expires, path, domain, secure)
{ 
    expires = expires * 60*60*24*1000;
    var today = new Date();
    var expires_date = new Date( today.getTime() + (expires) );
    var cookieString = name + '=' +escape(value) + 
       ( (expires) ? ';expires='  + expires_date.toGMTString() : '') + 
       ( (path) ? ';path=' + path : '') + 
       ( (domain) ? ';domain=' + domain : '') + 
       ( (secure) ? ';secure' : ''); 
    document.cookie = cookieString; 
} 

function loadSize ()
{
    currentSize = getCookie('cookieSize');
        
    if(!currentSize)
    {
        currentSize = '12px';
        setCookie ('cookieSize', '12px', '1', '/', '', '');
    }
        
    document.getElementById('menu').style.fontSize = currentSize;
       var contentBlock = document.getElementById('content');
       if (contentBlock != null)
       {
        contentBlock.style.fontSize = currentSize;  
       }
}



/* ******* replacement ******** */


function com_stewartspeak_replacement() {
/*
    Dynamic Heading Generator
    By Stewart Rosenberger
    http://www.stewartspeak.com/headings/

    This script searches through a web page for specific or general elements
    and replaces them with dynamically generated images, in conjunction with
    a server-side script.
*/

//replaceSelector("h2.red","client/kampeerauto/javascript/replacement/h2.red.php",true);

//replaceSelector("h2.normal","client/kampeerauto/javascript/replacement/h2.php",true);

//replaceSelector("h2.brique","client/kampeerauto/javascript/replacement/h2.brique.php",true);

//replaceSelector("h2.roze","client/kampeerauto/javascript/replacement/h2.roze.php",true);

//replaceSelector("h2.yellow","client/kampeerauto/javascript/replacement/h2.yellow.php",true);

//replaceSelector("h2.green","client/kampeerauto/javascript/replacement/h2.green.php",true);



replaceSelector("span.pageTitle","client/kampeerauto/javascript/replacement/h2.yellow.php",true);


var testURL = "client/kampeerauto/javascript/replacement/test.png";

var doNotPrintImages = true;
var printerCSS = "client/kampeerauto/javascript/replacement/replacement-print.css";

var hideFlicker = true;
var hideFlickerCSS = "client/kampeerauto/javascript/replacement/replacement-screen.css";
var hideFlickerTimeout = 1000;


/* ---------------------------------------------------------------------------
    For basic usage, you should not need to edit anything below this comment.
    If you need to further customize this script's abilities, make sure
    you're familiar with Javascript. And grab a soda or something.
*/

var items;
var imageLoaded = false;
var documentLoaded = false;
var escapeText = (typeof(encodeURIComponent) != 'undefined') ? encodeURIComponent : function(text){ return escape(text).replace(/\+/g,'%2B'); } ;

function replaceSelector(selector,url,wordwrap)
{
    if(typeof items == "undefined")
        items = new Array();

    items[items.length] = {selector: selector, url: url, wordwrap: wordwrap};
}

if(hideFlicker)
{       
    document.write('<link id="hide-flicker" rel="stylesheet" media="screen" href="' + hideFlickerCSS + '" />');     
    window.flickerCheck = function()
    {
        if(!imageLoaded)
            setStyleSheetState('hide-flicker',false);
    };
    setTimeout('window.flickerCheck();',hideFlickerTimeout)
}

if(doNotPrintImages)
    document.write('<link id="print-text" rel="stylesheet" media="print" href="' + printerCSS + '" />');

var test = new Image();
test.onload = function() { imageLoaded = true; if(documentLoaded) replacement(); };
test.src = testURL + "?date=" + (new Date()).getTime();

addLoadHandler(function(){ documentLoaded = true; if(imageLoaded) replacement(); });


function documentLoad()
{
    documentLoaded = true;
    if(imageLoaded)
        replacement();
}

function replacement()
{
    for(var i=0;i<items.length;i++)
    {
        var elements = getElementsBySelector(items[i].selector);
        if(elements.length > 0) for(var j=0;j<elements.length;j++)
        {
            if(!elements[j])
                continue ;
        
            var text = extractText(elements[j]);
            while(elements[j].hasChildNodes())
                elements[j].removeChild(elements[j].firstChild);

            var tokens = [text];
            for(var k=0;k<tokens.length;k++)
            {
                var url = items[i].url + "?text="+escapeText(tokens[k]+' ')+"&selector="+escapeText(items[i].selector);
                var image = document.createElement("img");
                image.className = "replacement";
                image.alt = tokens[k] ;
                image.src = url;
                elements[j].appendChild(image);
            }

            if(doNotPrintImages)
            {
                var span = document.createElement("span");
                span.style.display = 'none';
                span.className = "print-text";
                span.appendChild(document.createTextNode(text));
                elements[j].appendChild(span);
            }
        }
    }

    if(hideFlicker)
        setStyleSheetState('hide-flicker',false);
}

function addLoadHandler(handler)
{
    if(window.addEventListener)
    {
        window.addEventListener("load",handler,false);
    }
    else if(window.attachEvent)
    {
        window.attachEvent("onload",handler);
    }
    else if(window.onload)
    {
        var oldHandler = window.onload;
        window.onload = function piggyback()
        {
            oldHandler();
            handler();
        };
    }
    else
    {
        window.onload = handler;
    }
}

function setStyleSheetState(id,enabled) 
{
    var sheet = document.getElementById(id);
    if(sheet)
        sheet.disabled = (!enabled);
}

function extractText(element)
{
    if(typeof element == "string")
        return element;
    else if(typeof element == "undefined")
        return element;

    var text = "";
    var kids = element.childNodes;
    for(var i=0;i<kids.length;i++)
    {
        if(kids[i].nodeType == 1)
        text += extractText(kids[i]);
        else if(kids[i].nodeType == 3)
        text += kids[i].nodeValue;
    }

    return text;
}

/*
    Finds elements on page that match a given CSS selector rule. Some
    complicated rules are not compatible.
    Based on Simon Willison's excellent "getElementsBySelector" function.
    Original code (with comments and description):
        http://simon.incutio.com/archive/2003/03/25/getElementsBySelector
*/
function getElementsBySelector(selector)
{
    var tokens = selector.split(' ');
    var currentContext = new Array(document);
    for(var i=0;i<tokens.length;i++)
    {
        token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');
        if(token.indexOf('#') > -1)
        {
            var bits = token.split('#');
            var tagName = bits[0];
            var id = bits[1];
            var element = document.getElementById(id);
            if(tagName && element.nodeName.toLowerCase() != tagName)
                return new Array();
            currentContext = new Array(element);
            continue;
        }

        if(token.indexOf('.') > -1)
        {
            var bits = token.split('.');
            var tagName = bits[0];
            var className = bits[1];
            if(!tagName)
                tagName = '*';

            var found = new Array;
            var foundCount = 0;
            for(var h=0;h<currentContext.length;h++)
            {
                var elements;
                if(tagName == '*')
                    elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                else
                    elements = currentContext[h].getElementsByTagName(tagName);

                for(var j=0;j<elements.length;j++)
                    found[foundCount++] = elements[j];
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            for(var k=0;k<found.length;k++)
            {
                if(found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b')))
                    currentContext[currentContextIndex++] = found[k];
            }

            continue;
        }

        if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/))
        {
            var tagName = RegExp.$1;
            var attrName = RegExp.$2;
            var attrOperator = RegExp.$3;
            var attrValue = RegExp.$4;
            if(!tagName)
                tagName = '*';

            var found = new Array;
            var foundCount = 0;
            for(var h=0;h<currentContext.length;h++)
            {
                var elements;
                if(tagName == '*')
                    elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                else
                    elements = currentContext[h].getElementsByTagName(tagName);

                for(var j=0;j<elements.length;j++)
                    found[foundCount++] = elements[j];
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            var checkFunction;
            switch(attrOperator)
            {
                case '=':
                    checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
                    break;
                case '~':
                    checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
                    break;
                case '|':
                    checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
                    break;
                case '^':
                    checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
                    break;
                case '$':
                    checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
                    break;
                case '*':
                    checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
                    break;
                default :
                    checkFunction = function(e) { return e.getAttribute(attrName); };
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            for(var k=0;k<found.length;k++)
            {
                if(checkFunction(found[k]))
                    currentContext[currentContextIndex++] = found[k];
            }

            continue;
        }

        tagName = token;
        var found = new Array;
        var foundCount = 0;
        for(var h=0;h<currentContext.length;h++)
        {
            var elements = currentContext[h].getElementsByTagName(tagName);
            for(var j=0;j<elements.length; j++)
                found[foundCount++] = elements[j];
        }

        currentContext = found;
    }

    return currentContext;
}


}// end of scope, execute code
if(document.createElement && document.getElementsByTagName && !navigator.userAgent.match(/opera\/?6/i))
    com_stewartspeak_replacement();

function openPopup(url, width, height)
{
    window.open(url, 'tutorial', 'status=0, toolbar=0, location=0, menubar=0, directories=0, resizable=0, scrollbars=0, height=' + height + ', width=' + width);

    //return false;
}

function naarTop()
{
             scrollTo( 0, 100 );
}

/*
 * NKC pop-over automatische incasso
 */
function popover()
{
    this.initialize = function()
    {
        if (jQuery.browser.msie)
        {
            if (jQuery.browser.version <= 6.0)
            {
                jQuery.getScript('/ie5.js');
            }
        }
    },
    
    this.show = function(url, width, callback)
    {
        if (url == undefined)
        {
            url = '/client/kampeerauto/template/popup.html';
        }

        if (width == undefined)
        {
            width = 500;
        }
        
        // Haal de inhoud van de popup via AJAX op
        var div = document.createElement('div');
        div.id = 'popupContainer';
        
        jQuery(div).load(url, {}, function(responseText, textStatus, XMLHttpRequest)
        {
            // Toon de popup
            jQuery(div).dialog(
                {
                    modal :  true,
                    resizable : false,
                    draggable : false,
                    autoOpen : true,
                    closeOnEscape : true,
                    width : width,
                    position : 'center'
                }
            );
            
            if (callback != undefined)
            {
                callback();
            }
        });
        document.body.appendChild(div);   
    }
}

var popover = new popover();
popover.initialize();

$(document).ready(function()
{
	// Hide div w/id extra
	$("#cms_cm1238__form__288_row, #cms_cm1238__form__289_row, #cms_cm1238__form__290_row, #cms_cm1238__form__291_row, #cms_cm1238__form__292_row, #cms_cm1238__form__293_row").css("display","none");

	// Add onclick handler to checkbox w/id checkme
	var checkExtraTraveler = function()
	{
		// If checked
		if ($("#cms_cm1238__form__239_row .elementCheckbox").is(":checked"))
		{
			//show the hidden div
			$("#cms_cm1238__form__288_row, #cms_cm1238__form__289_row, #cms_cm1238__form__290_row, #cms_cm1238__form__291_row, #cms_cm1238__form__292_row, #cms_cm1238__form__293_row").show();
		}
		else
		{     
			//otherwise, hide it
			$("#cms_cm1238__form__288_row, #cms_cm1238__form__289_row, #cms_cm1238__form__290_row, #cms_cm1238__form__291_row, #cms_cm1238__form__292_row, #cms_cm1238__form__293_row").hide();
		}
	};
	$("#cms_cm1238__form__239_row .elementCheckbox").click(checkExtraTraveler);
	checkExtraTraveler();
});
