// Determine browser
var ns4 = (document.layers) ? true : false;
var ie4 = (document.all && !document.getElementById) ? true : false;
var ie5 = (document.all && document.getElementById) ? true : false;
var ns6 = (!document.all && document.getElementById) ? true : false;
var ns = ns4 || ns6;
var ie = ie4 || ie5;
var mac = (navigator.userAgent.toLowerCase().indexOf('mac') > 0);
var win = (navigator.userAgent.toLowerCase().indexOf('win') > 0);
var mouseX = 0;
var mouseY = 0;
var onLoadEventHandlers = [];
var onUnloadEventHandlers = [];
var onMouseMoveHandlers = [];
var onResizeHandlers = [];
var evt_Running = false;
function registerEvent(arr, func) { arr[arr.length] = func; }
function registerOnLoadEvent(func) { registerEvent(onLoadEventHandlers, func); }
function registerOnUnloadEvent(func) { registerEvent(onUnloadEventHandlers, func); }
function registerOnMouseMoveEvent(func) { registerEvent(onMouseMoveHandlers, func); }
function registerOnResizeEvent(func) { registerEvent(onResizeHandlers, func); }

function handleEvent(arr, e) {	for (var i = 0; i < arr.length; i++) try { arr[i](window.event ? event : e); } catch(ser) { } }
function handleOnLoadEvent(e) { handleEvent(onLoadEventHandlers, e); }
function handleOnUnloadEvent(e) { if (evt_Running) handleEvent(onUnloadEventHandlers, e); }
function handleOnMouseMoveEvent(e) { if (evt_Running) handleEvent(onMouseMoveHandlers, e); }
function handleOnResizeEvent(e) { if (evt_Running) handleEvent(onResizeHandlers, e); }
function evt_Start(e) { evt_Running = true; }
function evt_Stop(e) { evt_Running = false; }
registerOnLoadEvent(evt_Start);
registerOnUnloadEvent(evt_Stop);

//if (ns4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = handleOnMouseMoveEvent;
window.onload = handleOnLoadEvent;
window.onunload = handleOnUnloadEvent;
window.onresize = handleOnResizeEvent;

function followMouse(e) {
	if (document.all) { mouseX = event.clientX + document.body.scrollLeft; mouseY = event.clientY + document.body.scrollTop; } 
	else { mouseX = e.pageX; mouseY = e.pageY; }
}
registerOnMouseMoveEvent(followMouse);


function openCenteredWindow(url, name, w, h, features) {
	if (!features || features.length==0) features = 'scrollbars=yes,resizable=yes,menubar=no,toolbar=no,status=no,location=no';
	features = 'width=' + w + ',height=' + h + ',' + features;
	if (window.screen) {
			var myLeft = (screen.width-w)/2;
			var myTop = (screen.height-h)/2;
			features += ',left=' + myLeft + ',top=' + myTop;
	}
	var newWnd = window.open(url, name, features);
	try { window.top.wndPop = newWnd; }	catch (securityError) { }
}

function findObj(n, d) {
	var p,i,x;	if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function swapImgRestore() { //v3.0
	var i,x,a=document.internal_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function swapImage() { //v3.0
	var i,j=0,x,a=swapImage.arguments; document.internal_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	 if ((x=findObj(a[i]))!=null){document.internal_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.internal_p) d.internal_p=new Array();
		var i,j=d.internal_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.internal_p[j]=new Image; d.internal_p[j++].src=a[i];}}
}

function reloadPage(init) {	//reloads the window if Nav4 resized
	if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
		document.internal_pgW=innerWidth; document.internal_pgH=innerHeight; onresize=reloadPage; }}
	else if (innerWidth!=document.internal_pgW || innerHeight!=document.internal_pgH) location.reload();
}

function setCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}

function switchLanguage(fileName1, language) {
	var today = new Date()
	var expiretime = new Date()
	expiretime.setTime(today.getTime() + 1000*60*60*24*365)
	if (language == 'NL') {
		document.cookie = "opel_language=FR" + "; expires=" + expiretime.toGMTString() ;
	}
	else {
		document.cookie = "opel_language=NL" + "; expires=" + expiretime.toGMTString() ;
	};

	location.href = fileName1;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function trim(txt){
    while (txt.substr(0, 1) == ' ') txt = txt.substr(1, txt.length - 1);
    while (txt.substr(txt.length-1, 1) == ' ') txt = txt.substr(0, txt.length - 1);
    return txt;
}

function safeStr(str) {
	if (!str) return "";
	var re, ret;
	re = new RegExp(/\s/g);
	ret = str.replace(re, "_");
	re = new RegExp(/[^\w-]/g);
	return ret.replace(re, "");
}

function dbgout(msg) {
	if (document.dbg) {
		var div = document.getElementById("_DbgDiv");
		div.innerHTML += msg+"<br/>";
	}
}

function numberFormater() {
	this.separator = ".";
	this.decpoint = ",";
	this.percent = "%";
	this.format = "#.##0,00";

	this.dbl2str = function(number) {
		if (number - 0 != number) return null;
		var formatin = this.format;
		var useSeparator = formatin.indexOf(this.separator) != -1;
		var usePercent = formatin.indexOf(this.percent) != -1;
		var isNegative = (number < 0);
		number = Math.abs(number);
		if (usePercent) number *= 100;
		formatin = this.strip(formatin, this.separator + this.percent);
		number = (""+number).replace(/\./g, this.decpoint);
		var dec = number.indexOf(this.decpoint) != -1;
		var nleftEnd = (dec) ? number.substring(0, number.indexOf(this.decpoint)) : number;
		var nrightEnd = (dec) ? number.substring(number.indexOf(this.decpoint) + 1) : "";
		dec = formatin.indexOf(this.decpoint) != -1;
		var sleftEnd = (dec) ? formatin.substring(0, formatin.indexOf(this.decpoint)) : formatin;
		var srightEnd = (dec) ? formatin.substring(formatin.indexOf(this.decpoint) + 1) : "";
		if (srightEnd.length < nrightEnd.length) {
			var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
			nrightEnd = nrightEnd.substring(0, srightEnd.length);
			if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);
			while (srightEnd.length > nrightEnd.length) { nrightEnd = "0" + nrightEnd; }
			if (srightEnd.length < nrightEnd.length) { nrightEnd = nrightEnd.substring(1); nleftEnd = (nleftEnd - 0) + 1; }
		} else {
			for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
				if (srightEnd.charAt(i) == "0") nrightEnd += "0";
				else break;
			}
		}
		sleftEnd = this.strip(sleftEnd, "#");
		while (sleftEnd.length > nleftEnd.length) { nleftEnd = "0" + nleftEnd; }
		if (useSeparator) nleftEnd = this.separate(nleftEnd, this.separator);
		var output = nleftEnd + ((nrightEnd != "") ? this.decpoint + nrightEnd : "");
		output = output + ((usePercent) ? this.percent : "");
		if (isNegative) { output = "-" + output; }
		return output;
	}

	this.strip = function(input, chars) {
		var output = "";
		for (var i=0; i < input.length; i++)
			if (chars.indexOf(input.charAt(i)) == -1)
				output += input.charAt(i);
		return output;
	}

	this.separate = function(input, separator) {
		input = "" + input;
		var output = "";
		for (var i=0; i < input.length; i++) {
			if (i != 0 && (input.length - i) % 3 == 0) output += separator;
			output += input.charAt(i);
		}
		return output;
	}
	
	this.str2dbl = function(str) {
		if (str.indexOf(this.separator) >= 0)
			str = str.substr(0, str.indexOf(this.separator)) + str.substr(str.indexOf(this.separator)+1);
		if (str.indexOf(this.decpoint) >= 0)
			str = str.substr(0, str.indexOf(this.decpoint)) + "." + str.substr(str.indexOf(this.decpoint)+1);
		return parseFloat(str);
	}
}
var nf = new numberFormater();

function PriceStr(dPrc) {
	if (location.href.indexOf(".opel.nl") >= 0)
		return "€ "+nf.dbl2str(dPrc);
	else
		return nf.dbl2str(dPrc)+" €";
}

function PriceStr2Dbl(strPrc) {
	if (location.href.indexOf(".opel.nl") >= 0)
		return nf.str2dbl(strPrc.substr(2));
	else
		return nf.str2dbl(strPrc.substr(0, strPrc.length-2));
}

function chgVis(elm, disp) {
	var e = findObj(elm);
	if (e && (e.style || (e.style = e))) e.style.display = disp;
}

function dN() { return false; }
function turnOffButton(but, msg) {
	but.onclick = dN;
	but.innerHTML = msg;
	var bd = document.getElementsByTagName("BODY");
	if (bd.length == 1) {
		if (!bd[0].style) bd[0].style = bd[0];
		bd[0].style.cursor = "wait";
	}
	return true;
}

function URLEncode(str){
	var ret = escape(str);
	while (ret.indexOf('*') >= 0) ret = ret.replace('*', '%2A');
	while (ret.indexOf('+') >= 0) ret = ret.replace('+', '%2B');
	while (ret.indexOf('-') >= 0) ret = ret.replace('-', '%2D');
	while (ret.indexOf('.') >= 0) ret = ret.replace('.', '%2E');
	while (ret.indexOf('/') >= 0) ret = ret.replace('/', '%2F');
	while (ret.indexOf('@') >= 0) ret = ret.replace('@', '%40');
	while (ret.indexOf('_') >= 0) ret = ret.replace('_', '%5F');
	
	return ret;
}

function disLnk(lnk, lng, msg) {
	if (!lnk) return;
	if (!lnk.style) lnk.style = lnk;
	lnk.cursor = "wait";
	if (lnk.innerHTML) lnk.innerHTML = msg ? msg : (lng && lng=="FR") ? "Veuillez&nbsp;patienter&nbsp;s.v.p" : "Even&nbsp;geduld&nbsp;a.u.b";
	lnk.onclick = function () { return false; }
	return true;
}

function inc(u,w,cb){
var x=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {x=new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
try {x=new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {x=false;}}
/*@end @*/
if (!x && typeof XMLHttpRequest!='undefined') {x=new XMLHttpRequest();}
x.open("GET",u,w);
if (w) x.onreadystatechange=function() { if (x.readyState==4) {document.getElementById(w).innerHTML = x.responseText;if(cb)cb();}}
x.send(null);
if (!w) { while(x.readyState!=4); document.write(x.responseText); if(cb)cb();}
}

document.write('<sc' + 'ript language="VBSc' + 'ript" type="text/vbsc' + 'ript" src="/js/flashVB.vbs"></sc' + 'ript>');
document.write('<sc' + 'ript language="Javasc' + 'ript" type="text/javasc' + 'ript" src="/js/flashJS.js"></sc' + 'ript>');

