
// Returns true if browser accepts flash
var canPlayFlashValue = null;
function canPlayFlash () {
    var MM_contentVersion = 6;
    var MM_FlashCanPlay = false;

    // Return saved result
    if ( canPlayFlashValue != null ) {
       return canPlayFlashValue;
    }

    var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

    if ( plugin ) {
        var words = navigator.plugins["Shockwave Flash"].description.split(" ");
        for (var i = 0; i < words.length; ++i) {
            if (isNaN(parseInt(words[i])))
                 continue;
            var MM_PluginVersion = words[i];
        }
        MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
    }
    else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) {
        // IE flash detection.
        for(var ii=7; ii>0; ii--){
            flashVersion = 0;
            try {
                var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + ii);
                MM_FlashCanPlay = true;
                flash = null;
                break;
            }
            catch(e){ }
        }
    }

    // Save value
    canPlayFlashValue = MM_FlashCanPlay;
    
    return MM_FlashCanPlay;
}

function getFlashVersion() {
  if (navigator.plugins && navigator.plugins.length > 0) {
    if (navigator.plugins["Shockwave Flash"]) {
      var words = navigator.plugins["Shockwave Flash"].description.split(" ");
      for (var i = 0; i < words.length; ++i) {
	if (isNaN(parseInt(words[i])))
	  continue;

	return parseFloat(words[i]);
      }
    }
    return 0;
  }
  else if (MM_FlashControlInstalled != null) {
    return MM_FlashControlVersion;
  }
  return 0;
}

// Popup windows functions
function MM_openBrWindow(theURL,winName,features) {
    window.open(theURL,winName,features);
}

function centerWindow(theURL,winName,features, myWidth, myHeight, isCenter) {
    if(document.all && navigator.appVersion.indexOf('Mac')!=-1){ myWidth -= 15; }

    if(window.screen)if(isCenter)if(isCenter=="true"){
        var myLeft = (screen.width-myWidth)/2;
        var myTop = (screen.height-myHeight)/2;
        features+=(features!='')?',':'';
        features+=',left='+myLeft+',top='+myTop;
    }
    return window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}

// Helper for getting javascript element
function getElement(name) {
    if (document.getElementById) {
        return document.getElementById(name);
    }
    else if (document.all) {
        return document.all[name];
    }

    return null;
}

// Mouseover functions
var nav_hilite_kop_color = '#ECECEC';
function nav_menu_hilite(item) {
    item.style.backgroundColor = nav_hilite_kop_color;
    item.style.cursor='pointer';
}

function nav_menu_unhilite(item,color) {
    item.style.backgroundColor = color
}

//reloads the window if Nav4 resized
function MM_reloadPage(init) {
  if (init==true) with (navigator) {
    if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
      document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
    }
  }
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) {
    location.reload();
  }
}

function goto_address (url) {
			window.location = url;
			return false;
}

function back_home () {
			window.location = "/";
}

// Iframe shower (Defaults to container)
function show_iframe (url,element) {
	if ( element == null || element == '') {
		element='containerSmall';
	}

    var f = getElement(element);
    f.style.display = 'block';

    var g = getElement(element+'_tekst');
    g.src = url;
}

function hide_iframe (element) {
    if ( element == null || element == '' ) element='containerSmall';

    var f = getElement(element);
    f.style.display = 'none';
    f.src = null;
}

function set_iframe_size(width,height,element) {
    if ( element == null || element == '' ) element='containerSmall';

    var f = getElement(element);
    var g = getElement(element+'_tekst');

    f.style.width = width + 'px'; f.style.height = height + 'px';
    g.style.width = width + 'px'; g.style.height = height + 'px';
    f.style.left = ((800 - width)/2) + 'px';
    return true;
}

/*
// Frontpage tab switcher DISABLED IN REDESIGN
function tabSwitchToZoeken() {
    getElement('autoverkopen').style.display = 'none';
    getElement('autozoeken').style.display = 'block';
    document.images.tab_zoeken.src='/images/button_autozoekenA.gif';
    document.images.tab_verkopen.src='/images/button_autoopgevenB.gif';
}
function tabSwitchToVerkopen() {
    var cookieOffset = document.cookie.indexOf("sortOrder=");
    if (cookieOffset >= 0) {
        document.location='/autoverkopen/bedrijven/handelsvoorraad/';
    }
    else {
        getElement('autozoeken').style.display = 'none';
        getElement('autoverkopen').style.display = 'block';
        document.images.tab_zoeken.src='/images/button_autozoekenB.gif';
        document.images.tab_verkopen.src='/images/button_autoopgevenA.gif';
    }
}
*/


/* ===================================================
    Function for creating a email popup for toon.fpl
   =================================================== */
function showEmailPop(view,speurderId,companyId){
	var width = arguments[3] || 600 ;
	var height = arguments[4] || 700 ;
    var x = centerWindow('/autokopen/toon/sendEmail.pl?id='+speurderId+'&ownerId='+companyId+'&view=' + view, 'print', 'scrollbars=yes,resize=yes', width, height, 'true');
    return false;
}
function showEmailPopWhitelabel(view,speurderId,companyId){
    var x = centerWindow('http://autotelegraaf.nl/autokopen/toon/sendEmail.pl?id='+speurderId+'&ownerId='+companyId+'&view=' + view, 'print', 'scrollbars=yes,resize=yes', 600, 700, 'true');
    return false;
}



/* ===================================================
    Function for cleaning a initial value in a input
   =================================================== */
function resetInputIfEqual(obj,value) {
    if ( obj.value == value ) {
        obj.value = '';
    }
}

/* ===================================================
    Function to unescape the email adres in javascript
    See /modules/ToolBox.pm
   =================================================== */
function unescapeEmail(str) {
  var dotRE = new RegExp(/_DOT_/g);
  var atRE  = new RegExp(/_AT_/g);
  var mtRE  = new RegExp(/_MT_/g);

  while ( str.indexOf('_DOT_') != -1 || str.indexOf('_AT_') != -1 || str.indexOf('_MT_') != -1 ) {
    str = str.replace(dotRE, '.');
    str = str.replace(atRE, '@');
    str = str.replace(mtRE, 'mailto:');
  }
  return str;
}


/* ===============================================
    Controll the lenght of a textfield end jump
    to the next if it exceeds the limit
   =============================================== */
function txtLength(field, nextField) {
    if (field.value.length == 2 && nextField) {
        field.form.elements[nextField].focus();
        field.form.elements[nextField].value='';
    }
}


/* ===============================================
    Email/Telefoon check by regex
   =============================================== */
var emailRe = new RegExp("^\\s*[\\w\\.\\-]+\\@([\\w\\-]+\\.)+[\\w\\-]+\\s*$");
function isValidEmail(str) {
   return str.match(emailRe);
}
var phoneRe = new RegExp("^[-\\d]+$");
function isValidPhone(str) {
   return ( str.match(phoneRe) && str.length > 9);
}

/* ===============================================
    JS Functies for using a div as sort of iframe
   =============================================== */
function getDivRequest(url,divId) {
  var hostname = document.domain;
  var req;

  // Set wait cursor
  getElement(divId).style.cursor = "wait";

  // code for Mozilla, etc.
  if (window.XMLHttpRequest) {
    req=new XMLHttpRequest()
    req.onreadystatechange=function () {
          // State 4 means totaly ready
          if (req.readyState == 4) {
            var divObj = getElement(divId);
            if(req.status == 200)
              divObj.innerHTML = req.responseText;
            else
              divObj.innerHTML = "Page error\n";

            divObj.style.cursor = "default";
          }
    }
    req.open("GET","http://" + hostname + url,true)
    req.send(null)
  }
  // code for IE
  else if (window.ActiveXObject) {
    try {
      req=new ActiveXObject("Microsoft.XMLHTTP")
    } catch (e) { return null };
    
    if (req) {
      req.onreadystatechange=function () {
          // State 4 means totaly ready
          if (req.readyState == 4) {
            var divObj = getElement(divId);
            if(req.status == 200)
              divObj.innerHTML = req.responseText;
            else
              divObj.innerHTML = "Page error\n";
              
            divObj.style.cursor = "default";
          }
      }
      req.open("GET","http://" + hostname + url,true)
      req.send()
    }
  }

  return req;
}
function postDivRequest(url,divId,form) {
  var hostname = document.domain;
  var req;

  // Set wait cursor
  getElement(divId).style.cursor = "wait";

  // code for Mozilla, etc.
  if (window.XMLHttpRequest) {
    req=new XMLHttpRequest()
    req.onreadystatechange=function () {
          // State 4 means totaly ready
          if (req.readyState == 4) {
            var divObj = getElement(divId);
            if(req.status == 200)
              divObj.innerHTML = req.responseText;
            else
              divObj.innerHTML = "Error loading page\n";

            divObj.style.cursor = "default";
          }
    }
    req.open("POST","http://" + hostname + url,true)

    // Parse form if exists
    if ( form )
        req.send(parseDivForm(req, form))
    else 
        req.send(null)
  }
  // code for IE
  else if (window.ActiveXObject) {
    try {
      req=new ActiveXObject("Microsoft.XMLHTTP")
    } catch (e) { return null };
    
    if (req) {
      req.onreadystatechange=function () {
          // State 4 means totaly ready
          if (req.readyState == 4) {
            var divObj = getElement(divId);
            if(req.status == 200)
              divObj.innerHTML = req.responseText;
            else
              divObj.innerHTML = "Error loading page\n";

            divObj.style.cursor = "default";
          }
      }
      req.open("POST","http://" + hostname + url,true)
      
      // Parse form if exists
      if ( form ) {
        req.send(parseDivForm(req, form))
      } else 
        req.send()
    }
  }

  return req;
}
function parseDivForm (req, form) {
    var formData = '';

    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    for(var i=0; i < form.elements.length; i++) {
      var el = form.elements[i];

      if ( el.name )
        // SELECT element is different, it will give all values so you have to check for checked
        if (el.type == 'radio' && !el.checked ) continue;

        formData = formData + el.name + '=' + escape(el.value) + ';';
    }

//    alert(formData);

    return formData;
}

/**
 * Parses the url querystring and fills a global hash with the name/value pairs
 *
 */
function parseQuery ( query ) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[?;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

/**
 * Returns the value of a requested querystring parameter
 *
 * name     Name of the param
 */
function getQueryParam(name){
    var queryString = location.href;
    var queryparams = parseQuery( queryString );

    return queryparams[name] || '';
}


// PARTICULIEREN FUNCTIONS----------------------------------------------------

function makeOption(text, value) {
	return new Option(text, value);
}

function getMerk(form) {
    return escape(form.merk.options[form.merk.selectedIndex].text);
}

function getModel(form) {
    return escape(form.model.options[form.model.selectedIndex].text);
}

function getBouwjaar(form) {
    return escape(form.bouwjaar.options[form.bouwjaar.selectedIndex].text);
}

function getModelToevoeging(form) {
    return escape(form.modelToevoeging.options[form.modelToevoeging.selectedIndex].text);
}

function getModelToevoegingValue(form) {
    return escape(form.modelToevoeging.options[form.modelToevoeging.selectedIndex].value);
}

function merkChange(form) {
	var merk = getMerk(form);
	
	form.model.length = 0;
	form.bouwjaar.length = 0;
	form.modelToevoeging.length = 0;
	if (merk.substring(0,6) == 'Anders') {
		form.merkAnders.style.visibility = 'visible';
		form.modelAnders.style.visibility = 'visible';
		form.bouwjaarAnders.style.visibility = 'visible';
		form.modelToevoegingAnders.style.visibility = 'visible';
		form.model.disabled = true;
		form.bouwjaar.disabled = true;
		form.modelToevoeging.disabled = true;
	}
	else {
		if (merk != '') {
			form.model.options[0] = new Option('... bezig ...', '');
			form.model.selectedIndex = 0;
		}
		form.merkAnders.style.visibility = 'hidden';
		form.modelAnders.style.visibility = 'hidden';
		form.bouwjaarAnders.style.visibility = 'hidden';
		form.modelToevoegingAnders.style.visibility = 'hidden';
		form.model.disabled = true;
		form.bouwjaar.disabled = true;
		form.modelToevoeging.disabled = true;
		if (merk != '') {
			goIframe('stap2.info.fpl?mode=model;merk='+merk);
		}
	}
}

function modelChange(form) {
	var model = getModel(form);
	form.bouwjaar.length = 0;
	form.modelToevoeging.length = 0;
	if (model.substring(0,6) == 'Anders') {
		form.modelAnders.style.visibility = 'visible';
		form.bouwjaarAnders.style.visibility = 'visible';
		form.modelToevoegingAnders.style.visibility = 'visible';
		form.bouwjaar.disabled = true;
		form.modelToevoeging.disabled = true;
	}
	else {
		if (model != '') {
			form.bouwjaar.options[0] = new Option('... bezig ...', '');
			form.bouwjaar.selectedIndex = 0;
		}
		form.modelAnders.style.visibility = 'hidden';
		form.bouwjaarAnders.style.visibility = 'hidden';
		form.modelToevoegingAnders.style.visibility = 'hidden';
		form.bouwjaar.disabled = true;
		form.modelToevoeging.disabled = true;
		if (model != '') {
			goIframe('stap2.info.fpl?mode=jaar;merk='+getMerk(form)+';model='+model);
		}
	}
}

function bouwjaarChange(form) {
	var bouwjaar = getBouwjaar(form);
	form.modelToevoeging.length = 0;
	if (bouwjaar.substring(0,6) == 'Anders') {
		form.bouwjaarAnders.style.visibility = 'visible';
		form.modelToevoegingAnders.style.visibility = 'visible';
		form.modelToevoeging.disabled = true;
	}
	else {
		if (bouwjaar != '') {
			form.modelToevoeging.options[0] = new Option('... bezig ...', '');
			form.modelToevoeging.selectedIndex = 0;
		}
		form.bouwjaarAnders.style.visibility = 'hidden';
		form.modelToevoegingAnders.style.visibility = 'hidden';
		form.modelToevoeging.disabled = true;
		if (bouwjaar != '') {
			goIframe('stap2.info.fpl?mode=type;merk='+getMerk(form)+';model='+getModel(form)+';bouwjaar='+bouwjaar);
		}
	}
}

function modelToevoegingChange(form) {
	var modelToevoeging = getModelToevoeging(form);
	var modelToevoegingValue = getModelToevoegingValue(form);
	form.carrosserieId.selectedIndex = 0;
	form.brandstofId.selectedIndex = 0;
	form.cilinderinhoud.value = '';
	form.deuren.value = '';
	if (modelToevoeging.substring(0,6) == 'Anders') {
	  	form.modelToevoegingAnders.style.visibility = 'visible';
	} else {
		form.modelToevoegingAnders.style.visibility = 'hidden';
		goIframe('stap2.info.fpl?mode=detail;merk='+getMerk(form)+';model='+getModel(form)+';bouwjaar='+getBouwjaar(form)+';modelToevoeging='+modelToevoegingValue);
	}
}

function checkMerkModel() {
	var form = document.forms.speurderform;

    var merk = form.merk.options[form.merk.selectedIndex].value;
	if ((!merk) && (!form.merkAnders.value)) {
		alert('Vul een merk in');
		return false;
	}

    var model = form.model.options[form.model.selectedIndex].value;
	if ((!model) && (!form.modelAnders.value)) {
		alert('Vul een model in');
		return false;
	}

	return true;
}

function AdImage(){}

function ShowAd(ads){
    var ran  = Math.round(Math.random() * ads.length -1);
    if (ran < 0 ){ran = 0}

    var ad      = ads[ran];
    var id1 = 'ShowAd' + Math.round(Math.random() * 1000);
    
    if (ad.type == 'flash'){
        if ( canPlayFlash() ) {
            document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" id="' + id1 + '" width="' + ad.width + '" height="' + ad.height + '">');
            document.write('<PARAM NAME=movie VALUE="' + ad.src + '"> <PARAM NAME=quality VALUE="high"> <PARAM NAME=bgcolor value="#FFFFFF"> <PARAM NAME=allowScriptAccess VALUE="sameDomain"> <PARAM NAME=wmode VALUE = "transparent"> <param name="menu" value="false" />');
            document.write('<EMBED src="'+ ad.src + '" quality="high" bgcolor="#FFFFFF" menu="false" width="' + ad.width + '" height="' + ad.height + '" name="' + id1 + '" allowScriptAccess="sameDomain" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">');
            document.write('<\/EMBED><\/OBJECT>');
        }
    }else{
        var target = '';
        
        if (ad.popout) {
            target = 'target="_blank"';
        }
        
        var id2 = 'ShowAd' + Math.round(Math.random() * 2000);
        
        document.write('<a ' + target + ' onclick="" href="" id="' + id1 + '"><img src="" onclick="" alt="" border="0" alt="" style="margin: 6px 6px 6px 0px;" title="" id="'+ id2 + '"></a>');
        var img     = document.getElementById(id2);
    
        var anchor  = document.getElementById(id1);
        img.src     = ad.imgsrc;
        img.title   = ad.title;
        anchor.href = ad.href;
    }
}

function showMovieCustom(url) { 
 features = 'scrollbars=no,width=480,height=430';
 window.open(url,'forme',features);
 return false;
} 

// Showing the carousel
function getCarousel(category,merk,newwindow) {
    // Valid number ?
    if ( isNaN(category) ) {
        alert('Category error');
        return false;
    }
    // Valid newwindow ?
    if ( ! newwindow || ( newwindow != 'true' && newwindow != true ) ) {
        newwindow = 'false';
    }
    else {
        newwindow = 'true';
    }

    var url = 'http://autotelegraaf.nl/js/dynamic/javascript.fpl?tmpl=carousel&serverDomain'+
              '=autotelegraaf.nl&newwindow='+newwindow+'&carouselFile=/autokopen/zoeken/carousel/' + category + '/';

    // Add brand if given
    if ( merk && merk.length > 0 ) {
        url += merk + '/';
    }

    var now = new Date();

    url += 'carousel.' + now.getMinutes() + '.gen.xml';

    document.write('<script LANGUAGE="JavaScript1.1" type="text/javascript" src="' + url + '"></script>');
    return true;
}

function init_resize(classname, element) {
	var s = document.getElementsByTagName(element);
	for (var i=0; i<s.length; i++) {
		if (s[i].className==classname) {
			var im = s[i].getElementsByTagName("img");
			for (var j=0; j<im.length; j++) {
				if (im[j].naturalWidth || im[j].complete)
					auto_resize(0,im[j]);
				else if (typeof im[j].onreadystatechange != 'undefined')
					im[j].onreadystatechange = auto_resize;
				else
					im[j].onload = auto_resize;
			}
		}
	}
}

function auto_resize(e, img) {
	if (!img)
		img = this;

	var pn = find_parent_block(img.parentNode);
	var newWidth = pn.offsetWidth;

	if (img.offsetWidth != 0 || newWidth != 0) {
		if (img.offsetWidth > newWidth) {
			img.style.width = newWidth + "px";
		}
		img.onload = null;
	} else {
		var is = img.src+"?";
		img.src = is;
	}
}

function img_onclick() {
	this.onclick = auto_resize;
	this.style.width = "";
	this.style.border = "";
}

function find_parent_block(obj) {
	if (obj.nodeName=="TD" || obj.nodeName=="BLOCKQUOTE" || obj.nodeName=="DIV" || obj.nodeName=="TH" || obj.nodeName=="BODY")
		return obj;
	return find_parent_block(obj.parentNode);
}


//  ---- More flexible functions to replace getDivRequest

// Asynchronous ajax handler
// Example:
//
//  var ok = asyncHandleRequest(url, postdata, {
//      'onSuccess' : function(r, xml, txt) {
//          Do something nice with the returned xml or txt
//      },
//      'onFailure' : function(r, status, statusText) {
//          Do something with the error, status is http status code
//      },
//  Optionally you can set a timeout and a cancel handler
//      'timeoutMilliSecs' : 4000,
//      'onCancel'  : function(r) {
//          alert('Cancelled');
//      },
//  Optionally you can provide start/finish functions, called
//  before starting the rest and after ending the request (ending
//  meaning succesfully, erroroneously or timeout)
//      'onStart' : function() {
//      },
//      'onFinish' : function() {
//      }
//  });

function asyncHandleRequest(url, postdata, options) {

    /* add a timestamp to the postdata string */
    postdata += "&timestamp=" + new Date().getTime();

    /* initialize the request */
    var req = initRequest();

    /* if req could not be initialized */
    if (req == null) return false;

    /* Register the event handler */
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (options['timeoutID'])
                clearTimeout(options['timeoutID']);

            if (req.status == "200") {
                if (typeof options['onSuccess'] == 'function')
                    options['onSuccess'](req, req.responseXML, req.responseText);
            } else {
                if (typeof options['onFailure'] == 'function')
                    options['onFailure'](req, req.status, req.statusText);
            }

            if (typeof options['onFinish'] == 'function')
                options['onFinish']();
        }
    };

    if (typeof options['onStart'] == 'function')
        options['onStart']();

    /* open the request, set the headers and send the postdata, flagging for async */
    req.open("POST", url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(postdata);

    if (options.timeoutMilliSecs) {
        function cancelTimer() {
            var _req;
            var _options;

            function asyncCancelRequest() {
                _req.onreadystatechange = function() {}

                if (typeof _options['onCancel'] == 'function')
                    _options['onCancel'](req);

                if (typeof _options['onFinish'] == 'function')
                    _options['onFinish']();
            }

            this.startTimer = function(req, options) {
                _req = req;
                _options = options;
                options['timeoutID'] = setTimeout(asyncCancelRequest, options.timeoutMilliSecs);
            }
        }

        var cancelTimerObj = new cancelTimer();
        cancelTimerObj.startTimer(req, options);
    }

    return true;
}


function initRequest() {
    var xmlHttp;

    /* this is for FF (and others ?) */
    if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();
    /* this is for IE */
    else if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    /* if clients browser doesn't support xmlHttp */
    else alert('Kan geen xmlHttp verbinding maken, neem contact op met de servicedesk.');

    return xmlHttp;
}


function toonShowBlock(id) {
	{
		asyncHandleRequest(
			'/service/showblock/',
			'action=overlay&id=' + id,
			{
				'onFailure' : function(r, status, statusText) {
				},
				'onSuccess' : function(r, xml, text) {
//					alert('showblock');
					var showblock = document.getElementById('commshowblock');
					if (showblock) {
						showblock.innerHTML = text;
						showblock.style.visibility = 'visible';
					}
				}
			}
		);
	}

	return false;
}


////////////////////////////////////////////////////////////////////////////////////////
// Functions to scan the chosen form fields, and redirect to a nice url when only
// merk (+ model (+brandstof)) is chosen.

function getCategoryName(categoryId) {
	// Nieuwe auto is een vreemde eend
	if (categoryId == 99)
		return 'nieuwe-auto';

	var names = [ '0', 'occasion', 'oldtimer', 'bedrijfswagen', 'schadeauto', 'ex-lease-auto' ];
	if (categoryId && categoryId >= 1 && categoryId <= 5) 
		return names[categoryId];

	return '';
}

function testIfNiceSearchUrl(form, categoryprefix, niceOpts) {
	if (!niceOpts)
    	niceOpts = [ 'merk','model','brandstofId' ];

    var chosen = new Object();
	if (!form)
    	form = document.forms['zoeken'];

	// Bij nieuwe auto wordt altijd een speciale optie meegegeven
	var nieuweAuto = form.elements['optie_NIEUWEAUTO'];

//	if (nieuweAuto && nieuweAuto.value == 'forced')
//		return true;

	var categoryName = categoryprefix;
	if (!categoryName) {
		var categoryId = nieuweAuto ? 99 : (form.categoryId ? form.categoryId.value : 0);

		categoryName = getCategoryName(categoryId);
		if (!categoryName)
			return true;
	}

	var checkboxes_checked = new Object();

    var filled = 0;
    for (var i = 0; i < form.elements.length; i++) {
        var elt = form.elements[i];

        if (elt.type == 'hidden') {
            // Ignored
        } else if (elt.type == 'select-one') {
            if (elt.value != "" && !(elt.name=='sortBy' && elt.value=='plaatsingsDatum')) {
                chosen[elt.name] = elt.options[elt.selectedIndex].text;
                filled++;
            }
        } else if (elt.type == 'text') {
            if (elt.value != "") {
                chosen[elt.name] = elt.value;
                filled++;
            }
        } else if (elt.type == 'select-multiple') {
            // We don't handle multiple select's yet
            return true;
        } else if (elt.type == 'checkbox') {
			// We need precisely the right amount of checkboxes
			if (elt.checked)
				checkboxes_checked[elt.name] = 1;
		}
    }

	if (nieuweAuto) {
		if (!(checkboxes_checked["optie_MERKDEALER"]))
			return true;
	} else {
		if (!(checkboxes_checked["optie_MERKDEALER"] && checkboxes_checked["optie_UNIDEALER"] && checkboxes_checked["optie_PARTICULIER"]))
			return true;
	}

    // Depending on chosen options we build a specific nice url

    var niceUrl = '/' + categoryName + '/';
    for (var i = 0; i < niceOpts.length; i++) {
        var key = niceOpts[i];
        var value = chosen[key];
        if (typeof value != "undefined") {
            delete chosen[key];
            filled--;
            niceUrl += urlEncode(value) + "/";
        } else if (filled > 0) {
            // We miss a portion for a complete nice url
            return true;
        }
    }

    if (filled > 0)
        return true;

    document.location.href = niceUrl;
    return false;
}


function urlEncode(v) {
	v = v.toLowerCase();
	v = stripVowelAccent(v);
	v = v.replace(/\s/g, '-');
	v = v.replace(/[\/\.']/g, '-');
    v = v.replace(/[()\+]/g, '');
	v =  escape(v);
	return v;
}


// The french way
function stripVowelAccent(str)
{
var s=str;

var rExps=[ /[\xC0-\xC2]/g, /[\xE0-\xE2]/g,
/[\xC8-\xCA]/g, /[\xE8-\xEB]/g,
/[\xCC-\xCE]/g, /[\xEC-\xEE]/g,
/[\xD2-\xD4]/g, /[\xF2-\xF4]/g,
/[\xD9-\xDB]/g, /[\xF9-\xFB]/g ];
var eExps=[ /%C[0-2]/g, /%E[0-2]/g,
/%C[8-A]/g, /%E[8-B]/g,
/%C[C-E]/g, /%E[C-E]/g,
/%D[2-4]/g, /%F[2-4]/g,
/%D[9-B]/g, /%F[9-B]/g ];

var repChar=['A','a','E','e','I','i','O','o','U','u'];

for(var i=0; i<rExps.length; i++)
s=s.replace(rExps[i],repChar[i]);
s=s.replace(eExps[i],repChar[i]);

return s;
}


function omnitureEvent(name) {
	if (name == 'autocheck') {
		var s=s_gi(s_account);
    	s.linkTrackVars="events"; 
		s.linkTrackEvents="event41";
		s.events="event41";
		mboxLoadSCPlugin(s);
		s.tl(true,'o','PDP:Autocheck rapport');
	} else if (name == 'financieren') {
		var s=s_gi(s_account);
		s.linkTrackVars="events"; 
		s.linkTrackEvents="event43"; 
		s.events="event43";
		mboxLoadSCPlugin(s); 
		s.tl(true,'o','PDP:Deze auto financieren');
	} else if (name == 'smscar') {
		var s=s_gi(s_account);
		s.linkTrackVars="events"; 
		s.linkTrackEvents="event42"; 
		s.events="event42"; 
		mboxLoadSCPlugin(s);
		s.tl(true,'o','PDP:Waardecheck via SMS');
	}
}


//  -------------------------------------------------------------------------
//  -------------------------------------------------------------------------EOF
