//cvl 2009

var currentMerk_Id="";
var currentModel_Id="";
var currentBouwjaar_Id="";
var currentOnderdeelgroep_Id="";
var currentOnderdeelicon_Id="";
var currentSearchString="";

var currentMerk_Name="";

//AFHANDELING JAVASCRIPT/FLASHCOMMUNICATIE VOOR VERSCHILLENDE BROWSERS
function getFlashMovieObject(MOTOR3){
	if (window.document[MOTOR3]){
	return window.document[MOTOR3];
	}
		if (navigator.appName.indexOf("Microsoft Internet")==-1){
			if (document.embeds && document.embeds[MOTOR3])
			return document.embeds[MOTOR3];
			}
		else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
			{
			return document.getElementById(MOTOR3);
			}
}

function initSearch() {

  jQuery(".content").hide();
  //toggle the componenet with class msg_body
  jQuery(".heading").click(function()
  {
    jQuery(this).next(".content").slideToggle(500);
  });
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

//INITIEREN FLASH binnenkomende links van bijv google.
//var currentMerk_Name="Alle Merken";
//var currentModel_Name="Alle Modellen";
//function getcurrentMerk(){return currentMerk_Name;}		
//function getcurrentModel(){return currentModel_Name;}				

//FUNCTIES VOOR HREF LINKS
function setcurrentMerk(newMerk_Name, newMerk_id) 
{
	currentMerk_Name = newMerk_Name;
	currentMerk_Id   = newMerk_id;

	// Reset model en bouwjaar + Eventuele subgroep
	currentModel_Id     = "";
	currentBouwjaar_Id  = "";
	currentSearchString = "";
	
	SendMerkToFlashMovie(newMerk_Name, newMerk_id);
	Request_content('',1);

	return false;
}

function setcurrentModel(newModel_Name, newModel_id) 
{
	currentModel_Name   = newModel_Name;
	currentModel_Id     = newModel_id;
	currentBouwjaar_Id  = "";
	currentSearchString = "";
	SendModelToFlashMovie(newModel_Name, newModel_id, currentMerk_Name);
	Request_content('',1);
	
	return false;
}

//FUNCTIES DOOR FLASH AAN TE ROEPEN 

//(fj-ref 1)
function SendMerkToFlashMovie(newMerk_Name, newMerk_id)
{

	var flashMovie=getFlashMovieObject("motorMPO");
	flashMovie.sendMerk(newMerk_Name, newMerk_id); 
	//document.getElementById('htmlMerk').value = newMerk_Name + " id="+newMerk_id;
}

//(fj-ref 2)
function SendModelToFlashMovie(newModel_Name, newModel_id, currentMerk_Name)
{
	var flashMovie=getFlashMovieObject("motorMPO");
	flashMovie.sendModel(newModel_Name, newModel_id, currentMerk_Name);
	//document.getElementById('htmlModel').value = newModel_Name+" id="+newModel_id;
}

//(fj-ref 3)
function recievePartIdFromFlash(partId) {
	if (partId == 0)
	{
		currentOnderdeelgroep_Id = '';	
	}
	else
	{
		currentOnderdeelgroep_Id   = partId;
	}
	
	currentOnderdeelicon_Id    = '';
	Request_content('',1);
	//document.getElementById('htmlOnderdeelgroep').value = "hoofdgroep id=" + partId;
}


//(fj-ref 5) in scroller
function recieveBouwjaarIdFromFlash(bouwjaarId) {
	currentBouwjaar_Id   = bouwjaarId;	
	Request_content('',1);
	//document.getElementById('htmlBouwjaar').value = "bouwjaar id=" + bouwjaarId;
}

//(fj-ref 6) in scroller
function recieveOnderdeelgroepIdFromFlash(onderdeelgroep_id) {
	currentOnderdeelicon_Id   = onderdeelgroep_id;
	Request_content('',1);
	//document.getElementById('onderdeel_iconen').value = "onderdeel_icon id=" + onderdeelgroep_id;
}

function filter_subcat(v1,onderdeelicon_id)
{
	send_url_1(false,'get_onderdeelgroep.php?v1='+v1+'&onderdeelicon_id='+onderdeelicon_id,'cat_panel');
}

function get_modellen(merk_id)
{
	send_url_1(false,'get_modellen.php?merk_id='+merk_id,'model_panel');
	send_url_1(false,'get_bouwjaren.php?model_id=','bouwjaar_panel');		
}

function get_bouwjaren(model_id)
{
	send_url_1(false,'get_bouwjaren.php?model_id='+model_id,'bouwjaar_panel');
}

function set_filter(merk_id,model_id,bouwjaar_id,onderdeelgroep_id,onderdeelicon_id)
{
	currentMerk_Id           = merk_id; 
	currentModel_Id          = model_id; 
	currentBouwjaar_Id       = bouwjaar_id; 
	currentOnderdeelgroep_Id = onderdeelgroep_id; 
	currentOnderdeelicon_Id  = onderdeelicon_id; 
	currentSearchString      = "";
	
	Request_content('',1);
}

function submit_quick_search()
{
	currentSearchString = document.getElementById("search_string").value;
	currentMerk_Id           = ""; 
	currentModel_Id          = ""; 
	currentBouwjaar_Id       = ""; 
	currentOnderdeelgroep_Id = ""; 
	currentOnderdeelicon_Id  = ""; 
		
	Request_content('',1);
}

var page = {"animated": null, "url": "", "target": null, loading: false};

/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Base64 = {
 
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 
	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = Base64._utf8_encode(input);
 
		while (i < input.length) {
 
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
 
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
 
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
 
			output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
 
		}
 
		return output;
	},
 
	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
 
		while (i < input.length) {
 
			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));
 
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
 
			output = output + String.fromCharCode(chr1);
 
			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}
 
		}
 
		output = Base64._utf8_decode(output);
 
		return output;
 
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}

function nav_listen()
{
	if(window.location.hash == "" && page.url != "")
	{
		window.location = "/";
		page = {"animated": null, "url": "", "target": null, loading: false};
	}
	else if(window.location.hash != "" && !page.loading)
	{
		if(Base64.encode((page.animated ? "1" : "0") + page.target + "|" + page.url) != window.location.hash.substr(1))
		{
			var url = Base64.decode(window.location.hash.substr(1));
			send_url_1(url.substr(0, 1) == 1, url.substr(url.indexOf("|") + 1), url.substr(1, url.indexOf("|") - 1));
		}
	}
}

function send_url_1(animated,url,target) 
{
	page.loading = true;
	if (animated == true)
	{
		loading();
	}
	
	var xmlHttp;
	try 
	{ 
		xmlHttp=new XMLHttpRequest(); 
	}
	catch (e)
    {
		try
		{    
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
		}
		catch (e)
        {    
		    try
            {      
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
		    catch (e)
      		{      
				return false;      
			}    
		}  
	}
	
    xmlHttp.onreadystatechange=function() {
        if(xmlHttp.readyState==4)
        {
			document.getElementById(target).innerHTML = xmlHttp.responseText;
			if(target != "model_panel" && target != "bouwjaar_panel" && target != "cat_panel")
			{
				window.location.hash = Base64.encode((animated ? "1" : "0") + target + "|" + url);
				page = {"animated": animated, "url": url, "target": target};
			}
			page.loading = false;
			if (animated == true)
			{
				var load_done=setTimeout("loading_done()", 400);
			}
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);  	
}

window.onload = function()
{
	setInterval("nav_listen()", 100);
}
