/*
// File written by Jochen "Khuri" Höhmann <khuri@khuris.com>
// Copyright 2010
//
// File        : ajax_functions.js
// Begin       : 2009.10.29 15:21:41
// Last Update : 2010.06.07 16:22:03
*/

// <![CDATA[
var request = null;
var is_loaded = 0;
var code;
var slide_id = 0;
var slide_time = 10000; // change slide
var slide_subtime = 1500; // change between subslides
var slide_image_array = null;//new Image();
var slide_array = new Array();
var slide_subid = 0;
var fadelock = 0;
var plang = 1;
var slide_key = null;
document.onkeydown = storekey;

function storekey(e) {
	// capture what key is pressed
	var e;
	if(!e) {
		e=window.event;
	}
	code = (e.charCode && e.keyCode==0) ? e.charCode : e.keyCode;
}

// start ajax object
if(window.XMLHttpRequest) {
	request = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			// no ajax support
			alert("Sorry, this function doesn't seem to work with your browser.\nPlease use the navigation on top of the page.");
		}
	}
}

function datahandler() {
	if(request.readyState == 4) {
		// get data
		var json = eval("("+request.responseText+")");

		// find next/prev slide id
		for(i=0;i<menulist.length;i++) {
			if(menulist[i] == slide_id) {
				slide_id_prev = (i == 0) ? menulist[(menulist.length -1)] : menulist[i -1];
				slide_id_next = (i == (menulist.length -1)) ? menulist[0] : menulist[i +1];
				break;
			}
		}

		// switch the image/text/links
		if(is_loaded == 1) {
			slide_loaded = true;
			for(i=0;i<slide_image_array.length;i++) {
				if(!slide_image_array[i].complete) {
					slide_loaded = false;
				}
			}
			if(slide_loaded) {
				// change the image and text fields
				document.getElementById('text_box').innerHTML = json.message;
				document.getElementById('slide_image').src = slide_image_array[0].src;
				contentfade(1);
				is_loaded = 1;
				// set the page header image
				if(json.topimg != 0) {
					document.getElementById('header_image').src=json.topimg;
				}
				if(json.responsestatus == 200) {
					// run through the top links and blur/mark them
					for(i=0;i<document.getElementById('breadcrumbs_list').childNodes.length;i++) {
						childa = document.getElementById('breadcrumbs_list').childNodes[i];
						if(childa.nodeType == 1) {
							if(childa.tagName.toLowerCase() == "li") {
								subnav = childa;
								for(j=0;j<subnav.childNodes.length;j++) {
									childb = subnav.childNodes[j];
									if(childb.nodeType == 1) {
										if(childb.tagName.toLowerCase() == "a") {
											childb.className = "";
											if(childb.id == "topmenu_"+slide_id) {
												childb.className = "selected";
											}
										}
										else if(childb.tagName.toLowerCase() == "span") {
											for(l=0;l<childb.childNodes.length;l++) {
												childc = childb.childNodes[l];
												if(childc.nodeType == 1) {
													if(childc.tagName.toLowerCase() == "a") {
														childc.className = "";
														if(childc.id == "topmenuname_"+json.containerid) {
															childc.className = "selected";
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
					// switch the document title
					split_title = document.title.split("-");
					document.title = split_title[0]+" - "+json.name;
					// switch the slide buttons
					document.getElementById('slide_prev').setAttribute("href","javascript:ajax_slide("+slide_id_prev+");");
					document.getElementById('slide_next').setAttribute("href","javascript:ajax_slide("+slide_id_next+");");
				}
				else {
					alert("Sorry, your requested site was not found!");
				}
				// are we done?
				is_loaded = 0;

				// Do we have more then one slide image? Load subslides
				if(slide_image_array.length > 1) {
					fadelock = 0;
					slide_subid = 1;
					clearTimeout(slide_key);
					slide_key = setTimeout("subcontentfade();",slide_subtime * 2); // initialise first sublide change after time * 2
				}
				else {
					slide_subid = 0;
					slide_key = setTimeout("ajax_slide(0);",slide_time);
				}
			}
			else {
				setTimeout("datahandler();",50);
			}
		}
		// fade out image/text, preload new image
		else if(is_loaded == 2) {
			slide_array = json.siteimg.split(",");
			slide_image_array = new Array();
			for(i=0;i<slide_array.length;i++) {
				slide_image_array[i] = new Image();
				slide_image_array[i].src = slide_array[i];
			}
			contentfade(2);
		}
	}
}

function ajax_slide(what) {
	if(is_loaded == 0) {
		if(request.readyState < 4) {
			request.abort();
		}
		// if we recieve a zero, it means next slide
		if(what == 0) {
			for(i=0;i<menulist.length;i++) {
				if(menulist[i] == slide_id) {
					what = (i == (menulist.length -1)) ? menulist[0] : menulist[i +1];
					break;
				}
			}
		}
		is_loaded = 2;
		slide_id = what;
		request.open("GET","ajax_slide.php?q="+what+"&lang="+plang,true);
		request.onreadystatechange = datahandler;
		request.send(null);
	}
}

function contentfade(dir) {
	// set a lock on this function
	if(fadelock == 0) {
		fadelock = 1;
		if(dir == 1) {
			for(i=1;i<=fademultiply;i++) {
				setTimeout("opac("+i+",'slide_image');",(i -1) * fadespeed);
			}
			for(i=1;i<=fademultiply;i++) {
				setTimeout("opac("+i+",'text_box');",(i -1) * fadespeed);
			}
		}
		else {
			for(i=fademultiply;i>0;i--) {
				setTimeout("opac("+i+",'slide_image');",(fademultiply -i) * fadespeed);
			}
			for(i=fademultiply;i>0;i--) {
				setTimeout("opac("+i+",'text_box');",(fademultiply -i) * fadespeed);
			}
		}
		is_loaded = 1;
		setTimeout("fadelock=0",fademultiply * fadespeed);
		setTimeout("datahandler();",fademultiply * fadespeed);
	}
}

function subcontentfade() {
	// set a lock on this function
	if(fadelock == 0) {
		if(slide_image_array[slide_subid]) {
			fadelock = 1;
			document.getElementById('slide_image2').src = slide_image_array[slide_subid].src
			document.getElementById('slide_image2').style.visibility = "visible";
			for(i=fademultiply;i>0;i--) {
				setTimeout("opac("+i+",'slide_image');",(fademultiply -i) * fadespeed);
			}
			setTimeout("document.getElementById('slide_image').src = slide_image_array["+slide_subid+"].src",fademultiply * fadespeed +10);
			setTimeout("opac("+fademultiply+",'slide_image');",fademultiply * fadespeed +15);
			setTimeout("document.getElementById('slide_image2').style.visibility = 'hidden';",fademultiply * fadespeed +20);

			slide_subid = slide_subid +1;
			setTimeout("fadelock=0",fademultiply * fadespeed);
			if(slide_image_array[slide_subid]) {
				slide_key = setTimeout("subcontentfade();",fademultiply * fadespeed + slide_subtime);
			}
			else {
				slide_key = setTimeout("subcontentfade();",fademultiply * fadespeed);
			}
		}
		else {
			is_loaded = 0;
			clearTimeout(slide_key);
			slide_key = setTimeout("ajax_slide(0);",slide_time);
		}
	}
}
function slide_play(dir) {
	if(slide_key == null && dir == 1) {
		slide_key = setTimeout("ajax_slide(0);",slide_time);
	}
	else {
		clearTimeout(slide_key);
		slide_key = null;
	}
}
// ]]>
