
// Tbv BrowserVersion, 
//Enum
var BrowserVersion = {onbekend : 0, IE7 :1, IE8 : 2, IE9 : 3, FF3 : 4, FF4 : 5};


//
// Jquery functions.
//
(function($) {
    // VERTICALLY ALIGN FUNCTION
    $.fn.vAlign = function() {
        return this.each(function() {
            var ah = $(this).height();
            var ph = $(this).parent().height();
            var mh = (ph - ah) / 2;
            if (mh < 0) {
                mh = 0;
            };
            $(this).css('padding-top', mh);
        });
    };
})(jQuery);

//
// JavaScript functions
//

String.prototype.trim = function() {
    return jQuery.trim(this)
};


// RemoveSpaces
function removeSpaces(string) {
    var tstring = "";
    string = '' + string;
    splitstring = string.split(" ");
    for (i = 0; i < splitstring.length; i++)
        tstring += splitstring[i];
    return tstring;
}


// GetBrowserVersion


function funGetBrowserVersion()
{
    var browserVersie = BrowserVersion.onbekend;
    
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
    { //test for MSIE x.x;
         var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number

         if (ieversion>=9)
         {
            browserVersie = BrowserVersion.IE9;
         }
         else if (ieversion>=8)
         {
            browserVersie = BrowserVersion.IE8;
         }
         else
         {
            browserVersie = BrowserVersion.IE7;
         }
    }
    else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent))
    { //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
     var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
     if (ffversion>=4)
     {
        browserVersie = BrowserVersion.FF4;
     }
     else
     {
        browserVersie = BrowserVersion.FF3;
     }
    }    
    
    return browserVersie;
}



// Invoer controlers.

// Check e-mail.
function funcheck_email(email_field) {
    var str = email_field
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,}(?:\.[a-z]{2})?)$/i
    if (filter.test(str))
        return (true)
    else {
        return (false)
    }
}

//Controleer postcode
function funcheck_Postcode(postcode) {
    postcode = removeSpaces(postcode);
    match = /^\d{4}[a-zA-Z]{2}$/i.exec(postcode);
    if (match) {
        return true;
    }
    else {
        return false;
    }

}

// Controleer Telefoonnummer, mogen wel voorloopnullen bevaten
function funcheck_Telefoonnr(telefoonnr) {
    if (telefoonnr.trim() != "") {
        var match = /^\d+$/i.exec(telefoonnr);
        if (match) {
            return true;
        }
        else {
            return false;
        }
    }
}	

// Test geheel getal, mogen geen voorloopnullen bevaten
function funcheck_GeheelGetal(waarde) {
    if (waarde == parseInt(waarde)) {
        return (true);
    }
    else {
        return (false);
    }
}

// Test numeriek, mogen geen voorloopnullen bevaten
function funcheck_Nummeriek(waarde) {
    if (waarde == parseFloat(waarde)) {
        return (true);
    }
    else {
        return (false);
    }
}


// BEGIN ValidateDatum
// funIsLeeg behorende bij funValidateDatum
function funIsLeeg(strVeld) {
    if (String(strVeld).replace(/(^\s+)|(\s+$)/g, '').length > 0) {
        return false;
    }

    return true;
}

// Test op geldige datum
function funValidateDatum(strDatum_DD_in, strDatum_MM_in, strDatum_JJJJ_in) {

    if ((funIsLeeg(strDatum_DD_in) == true)
		|| (funIsLeeg(strDatum_MM_in) == true)
		|| (funIsLeeg(strDatum_JJJJ_in) == true)) {
        return false;
    }

    // de functie getmonth begint te tellen bij de 0 en niet bij 1!!!       
    strDatum_MM_in = strDatum_MM_in - 1;

    var test = new Date(strDatum_JJJJ_in, strDatum_MM_in, strDatum_DD_in);

    if ((strDatum_JJJJ_in == test.getFullYear())
		&& (strDatum_MM_in == test.getMonth())
		&& (strDatum_DD_in == test.getDate())) {
        return true;
    }

    return false;
}
// EINDE ValidateDatum


// BEGIN Datum control

// Remarks:
// Datum control met maand, dag, jaar
// op te starten via date_showdate
//
// de volgende function zijn private:
//  date_addZero
//  date_updateDate

var date_delimit = '-';

function date_showdate(name, day, month, year, minyear, maxyear) {
    var str = '<input type="hidden" name="' + name + '" id="' + name + '" value="' + date_addZero(day) + date_delimit + date_addZero(month) + date_delimit + year + '" />';

    str += date_getSelect(name + '_dag', 1, 31, day);
    str += date_getSelect(name + '_maand', 1, 12, month);
    str += date_getSelect(name + '_jaar', minyear, maxyear, year);

    document.write(str);
}

function date_addZero(str) {
    str = String(str);
    if (str.length == 1) { return "0" + str; }
    return str;
}


// Bijwerken van input type="hidden" name="
function date_updateDate(o) {
    var nm = o.name;
    var parts = nm.split("_");

    var inp = document.getElementById(parts[0]);

    var dateParts = inp.value.split(date_delimit);

    switch (parts[1]) {
        case "dag": dateParts[0] = date_addZero(o.value); break;
        case "maand": dateParts[1] = date_addZero(o.value); break;
        case "jaar": dateParts[2] = o.value; break;
    }

    inp.value = dateParts.join(date_delimit);

}


// Uitlezen en initieel waarden vullen
function date_getSelect(nm, min, max, curr) {
    var str = '<select name="' + nm + '" OnChange="date_updateDate(this);">';
    str += '<option value="">&nbsp;</option>';

    for (var i = min; i <= max; i++) {
        str += '<option';

        if (i == curr) {
            str += ' selected="selected"';
        }

        str += ' value="' + i + '"';

        str += '>' + i + '</option>';
    }

    str += '</select>';
    return str;
}
// EINDE Datum control

// ======================================================================
// BEGIN: Tonen van een lay-over
// ======================================================================

function funLayerSettings(strURL, strWidth, strHeight)
{
	//zet de junction voor de link
	if (strURL.substring(0,4)!="http")
		strURL = readCookie('IV_JCT') + strURL;	

	$(function() {
		$.nyroModalSettings({
			bgColor: '#000000',
			forceType: 'iframe',
			resizable: false,
			closeButton: '<a href="#" class="nyroModalClose" id="closeBut" title="Sluit">Sluit</a>',
			showBackground: function (elts, settings, callback) {
				elts.bg.css({opacity:0}).fadeTo(500, 0.5, callback);
			}
		});
		$('#nyromodal').nyroModal();
		$.fn.nyroModal.settings.endRemove = function() { funSetScroll(true); };
	});
	//width en height telkens opnieuw instellen want kunnen andere waarden hebben, evenals url
	if (jQuery.isReady) {	
		$.nyroModalManual({
			minWidth: strWidth,
			minHeight: strHeight,
			url: strURL
		});
		funSetScroll(false);
	}

}

function funpagina(strURL)
{

	//zet de junction voor de link
	if (strURL.substring(0,4)!="http")
		strURL = dynamiclink(strURL);
	
	window.location = strURL;
}

// ======================================================================
// BEGIN: Tonen van een lay-over
// ======================================================================

function funOpenLayover(strURL, width, height)
{
	//zet de junction voor de link
	if (strURL.substring(0,4)!="http")
		strURL = readCookie('IV_JCT') + strURL;	

	$(function() {
		$.nyroModalSettings({
wisth: width,
height: height,
			minWidth: width,
			minHeight: height,
			padding: 0,
			closeButton: '<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>',
			forceType: 'iframe',
			resizable: false,
			titleFromIframe: false,
			title: null,
			showBackground: function (elts, settings, callback) {
			elts.bg.css({opacity:0}).fadeTo(500, 0.5, callback);
			}
		});
		$('#nyromodal').nyroModal();
		if (reloadNaSluiten) {
			$.fn.nyroModal.settings.endRemove = function() { funSetScroll(false); window.location.reload(); };
		} else {
			$.fn.nyroModal.settings.endRemove = function() { funSetScroll(true); };
		}
	});
	
	if (jQuery.isReady) {	
		$.nyroModalManual({
			url: strURL
		});
		funSetScroll(false);
	}
}


function funOpenLayoverFromAjax(strURL, width, height, postbackControl)
{
	//zet de junction voor de link
	if (strURL.substring(0,4)!="http")
		strURL = readCookie('IV_JCT') + strURL;	

	$(function() {
		$.nyroModalSettings({
			minWidth: width,
			minHeight: height,
			padding: 0,
			closeButton: '<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>',
			forceType: 'iframe',
			resizable: false,
			titleFromIframe: false,
			title: null,
			showBackground: function (elts, settings, callback) {
			elts.bg.css({opacity:0}).fadeTo(500, 0.5, callback);
			}
		});
		$('#nyromodal').nyroModal();
		$.fn.nyroModal.settings.endRemove = function() { funSetScroll(true); funAjaxPostback(postbackControl); };
	});
	
	if (jQuery.isReady) {	
		$.nyroModalManual({
			url: strURL
		});
		funSetScroll(false);
	}
}


function funAjaxPostback(postbackControl)
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm._doPostBack(postbackControl, '');
}


function funSluitLayover()
{
    parent.$.nyroModalRemove();
}


function funSetScroll(pOnOff)
{
	if (pOnOff == true) 
	{
		document.body.style.overflow="auto";
	}
	else
	{
		document.body.style.overflow="hidden";
	}
}

// ======================================================================
// EINDE: Tonen van een lay-over
// ======================================================================
