//<![CDATA[
/*******************************************************************************************************
 * @package      AJAX-HANDLER
 * @access       public
 * @author       Ekrem ATICI <ekremekrem@hotmail.com>
 * @copyright    Copyright (c) 2008-2009 Ekrem ATICI
 *******************************************************************************************************/
<!--
var ajax = {
	version : '1.0.5',
	mimeType : "text/html",
	httpHost : "http://" + window.location.hostname,
	httpRequest : false,
	intervalId : false,
	sleep : function sleep(seconds) {
		var start = new Date().getTime();
		do {} while (new Date() < start + seconds * 1000);
		return 0;
	},
	echo : function echo(str) {
		return document.write(str);
	},
	createRequestObject : function createRequestObject() {
		if ((window.XMLHttpRequest)) {
			this.httpRequest = new XMLHttpRequest();
			if (this.httpRequest.overrideMimeType) {
				this.httpRequest.overrideMimeType(this.mimeType);
			}
		} else if ((window.ActiveXObject)) {
			try {
				this.httpRequest = new ActiveXObject("Msxml2.XMLHTTP.4.0");
			} catch(e) {
				try {
					this.httpRequest = new ActiveXObject("MSXML2.XMLHTTP");
				} catch(e) {
					try {
						this.httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
					} catch(e) {
						this.httpRequest = false;
					}
				}
			}
		} else if ((window.createRequest)) {
			try {
				this.httpRequest = window.createRequest();
			} catch(e) {
				this.httpRequest = false;
			}
		} else {
			return false;
		}
		return this.httpRequest;
	},
	createRequestObjectWSafeMode : function createRequestObjectWSafeMode(target) {
		if ((target) && (target != 'undefined') && (target != Object)) {
			target = (document.all ? document.all[target] : document.getElementById ? document.getElementById(target) : null);
		}
		if ((target) && (target != 'undefined')) {
			target.innerHTML = '';
			target.innerHTML = '<iframe id="sajax" name="sajax" frameborder="0"></iframe>';
			var sajax = (document.all ? document.all['sajax'] : document.getElementById ? document.getElementById('sajax') : null);
			sajax.setAttribute('title', 'sajax');
			sajax.setAttribute('allowtrasparency', 'yes');
			sajax.setAttribute('frameborder', '0');
			sajax.setAttribute('scrolling', 'no');
			sajax.style.border = 'none';
			sajax.style.width  = 'auto';
			sajax.style.height = 'auto';
			return true;
		}
		return false;
	},
	working : function working(messagebox, status) {
		if ((messagebox) && (messagebox != 'undefined')) {
			if (!status) { status = 3; };
			messagebox.style.width = '100%';
			messagebox.style.height = '100%';
			messagebox.style.verticalAlign = 'middle';
			messagebox.style.background = 'url("img/loading-' + status + '.gif") no-repeat center';
			messagebox.style.cursor = 'wait';
			return true;
		}
		return false;
	},
	loadingMessage : function loadingMessage(requestState, requestStatus, requestStatusText) {
		var message = new Array();
		switch (requestState) {
			case 0  : message[0] = "AJAX Error:\r\n [" + request.status + "] " + request.statusText; break;
			case 1  : message[1] = ''; break;
			case 2  : message[2] = ''; break;
			case 3  : message[3] = ''; break;
			default : return false; break;
		}
		message = message[requestState];
		if (requestState >= 1 || requestState <= 3) {
			message = '<div id="messagebox">' + message + '</div>';
		}
		return message;
	},
	writeContent : function writeContent(request, target) {
		if ((request) && (target) && (target != 'undefined')) {
			target.innerHTML = '';
			if (request.readyState == 0) {
				target.innerHTML = "AJAX Error:\r\n [" + request.status + "] " + request.statusText;
			}
			if ((request.readyState == 1) || (request.readyState == 2) || (request.readyState == 3)) {
				target.innerHTML = ajax.loadingMessage(request.readyState);
				var messagebox = (document.all ? document.all['messagebox'] : document.getElementById ? document.getElementById('messagebox') : null);
				if ((messagebox) && (messagebox != "undefined")) {
					this.working(messagebox, request.readyState);
				}
			}
			if (request.readyState == 4 || request.readyState == "complete") {
				if ((request.status == 200) || (request.status == 304)) {
					target.innerHTML = request.responseText;
				} else {
					target.innerHTML = "AJAX Error:\r\n [" + request.status + "] " + request.statusText;
				}
			}
			target.focus;
			return true;
		}
		return false;
	},
	post : function post(url, target, parameters) {
		target = (document.all ? document.all[target] : document.getElementById ? document.getElementById(target) : null);
		if (((target) && (target != 'undefined')) && (url)) {
			parameters = (!parameters) ? null : parameters;
			var request = this.createRequestObject();
			if (request) {
				request.onreadystatechange = function writePostResults() { ajax.writeContent(request, target); }
				request.open('POST', url, true);
				request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
				request.setRequestHeader("Content-length", parameters.length);
				request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
				request.send(parameters);
			} else {
				return false;
			}
			target.focus;
			return true;
		}
		return false;
	},
	get : function get(url, target, parameters) {
		target = (document.all ? document.all[target] : document.getElementById ? document.getElementById(target) : null);
		if ((target) && (target != 'undefined') && (url)) {
			parameters = (!parameters) ? null : parameters;
			var request = this.createRequestObject();
			if (request) {
				request.onreadystatechange = function writeGetResults() { ajax.writeContent(request, target); };
				request.open('GET', url , true);
				request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
				request.setRequestHeader("Content-length", url.length);
				request.setRequestHeader("Content-Type", "application/x-javascript; charset=UTF-8");
				request.send(null);
			} else {
				return false;
			}
			target.focus;
			return true;
		}
		return false;
	},
	include : function include(url) {
		var request = this.createRequestObject();
		if ((request) && (url)) {
			request.open('GET', url, false);
				request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
				request.setRequestHeader("Content-length", url.length);
				request.setRequestHeader("Content-Type", "application/x-javascript; charset=UTF-8");
			request.send(null);
			if (request.readyState == 0) {
				this.echo("AJAX Error:\r\n [" + request.status + "] " + request.statusText);
			} else if (request.readyState == 4) {
				if ((window.location.href.indexOf("http") == -1) || (request.status == 200) || (request.status == 304)) {
					this.echo(request.responseText);
				} else {
					this.echo("AJAX Error:\r\n [" + request.status + "] " + request.statusText);
				}
			}
			return true;
		}
		return false;
	},
	createQuery : function createQuery(formObj) {
		var query = '';
		for (i = 0; i < formObj.childNodes.length; i++) {
			if (formObj.childNodes[i].tagName == "INPUT") {
				if (formObj.childNodes[i].type == "text") {
					query += formObj.childNodes[i].name + "=" ;
					query += encodeURIComponent(formObj.childNodes[i].value) + "&";
				}
				if (formObj.childNodes[i].type == "checkbox") {
					if (formObj.childNodes[i].checked) {
						query += formObj.childNodes[i].name + "=" ;
						query += encodeURIComponent(formObj.childNodes[i].value) + "&";
					} else {
						query += formObj.childNodes[i].name + "=&";
					}
				}
				if (formObj.childNodes[i].type == "radio") {
					if (formObj.childNodes[i].checked) {
						query += formObj.childNodes[i].name + "=" ;
						query += encodeURIComponent(formObj.childNodes[i].value) + "&";
					}
				}
				if (formObj.childNodes[i].type == "hidden") {
					query += formObj.childNodes[i].name + "=" ;
					query += encodeURIComponent(formObj.childNodes[i].value) + "&";
				}
				if (formObj.childNodes[i].type == "submit") {
					query += formObj.childNodes[i].name + "=" ;
					query += encodeURIComponent(formObj.childNodes[i].value) + "&";
				}
			}
			if (formObj.childNodes[i].tagName == "SELECT") {
				var sel = formObj.childNodes[i];
				query += sel.name + "=" ;
				query += encodeURIComponent(escape(sel.options[sel.selectedIndex].value)) + "&";
			}
			if (formObj.childNodes[i].tagName == "TEXTAREA") {
				query += formObj.childNodes[i].name + "=" ;
				query += encodeURIComponent(escape(formObj.childNodes[i].value)) + "&";
			}
		}
		return query;
	},
	sendForm : function sendForm(form, url, reqmethod, target) {
		if (!(!form) || !(!target) || !(!url)) {
			var parameters = new Array();
			var baseurl = new Array();
			baseurl = url.split('?');
			parameters = (typeof baseurl[1] != 'undefined') ? baseurl[1].replace(/\?/ig, '') : '';
			parameters = (((/\?/ig).test(url))) ? parameters + '&' + ajax.createQuery(form) : ajax.createQuery(form);
			switch (reqmethod) {
				case 'post' : 
					return ajax.post(baseurl[0], target, parameters); 
					break;
				case 'get' : 
				case '' : 
				default :
					url = (((/\?/ig).test(url))) ? url + parameters : url + '?' + parameters;
					return ajax.get(url, target, parameters); 
					break;
			}
		}
		return false; 
	},
	data : {
		send : function send(url, target, method) {
			var parameters = '';
			switch (method) {
				case 'get'  : return ajax.get(url, target, parameters); break;
				case 'post' : return ajax.post(url, target, parameters); break;
			}
			return false;
		},
		receive : function receive(url, target, method, parameters) {
			switch (method) {
				case 'get'  : ajax.intervalId = window.setInterval("ajax.get(url, target, parameters)", 1000); break;
				case 'post' : ajax.intervalId = window.setInterval("ajax.post(url, target, parameters)", 1000); break;
			}
			return false;
		},
		abort : function abort() {
			ajax.intervalId = clearInterval(interval);
		}
	},
	XMLticker : {
		opacity : 'width: 100%; filter:progid:DXImageTransform.Microsoft.alpha(opacity=100); -moz-opacity: 1;',
		opacitySetting : 0,
		opacityString : '',
		XMLfile : '',
		tickerId : '',
		delay : 0,
		mouseOverBol : 0,
		pointer : 0,
		messages : '',
		ajaxObject : false,
		contentTarget : '',
		fadeTimer : '',
		startTicker : function startTicker(XMLfile, tickerId, tickerClass, delay, fadeornot) {
			ajax.XMLticker.XMLfile = XMLfile;
			ajax.XMLticker.tickerId = tickerId;
			ajax.XMLticker.delay = delay;
			ajax.XMLticker.mouseOverBol = 0;
			ajax.XMLticker.pointer = 0;
			ajax.XMLticker.opacityString = (typeof fadeornot != 'undefined') ? ajax.XMLticker.opacity : '';
			if (ajax.XMLticker.opacityString != '') {
				ajax.XMLticker.delay += 500;
				ajax.XMLticker.opacitySetting = 0.2;
				ajax.XMLticker.messages = [];
				ajax.XMLticker.ajaxObject = ajax.createRequestObject();
				document.write('<div id="' + tickerId + '" class="' + tickerClass + '">');
				document.write('<div id="tickertarget" style="' + ajax.XMLticker.opacityString + '">');
				document.write('<p align="center">');
				document.write('Loading...');
				document.write('</p>');
				document.write('</div>');
				document.write('</div>');
				ajax.XMLticker.getXMLfile();
			}
		},
		getXMLfile : function getXMLfile() {
			if (ajax.XMLticker.ajaxObject) {
				var url = '';
				url += ajax.XMLticker.XMLfile;
				url += (!((/\?/).test(ajax.XMLticker.XMLfile))) ?  "?bustcache=" : "&bustcache=";
				url += new Date().getTime();
				ajax.XMLticker.ajaxObject.onreadystatechange = function getXML() { ajax.XMLticker.initialize(); };
				ajax.XMLticker.ajaxObject.open('GET', url, true);
				ajax.XMLticker.ajaxObject.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
				ajax.XMLticker.ajaxObject.setRequestHeader("Content-length", url.length);
				ajax.XMLticker.ajaxObject.setRequestHeader("Content-Type", "application/x-javascript; charset=UTF-8");
				ajax.XMLticker.ajaxObject.send(null);
			}
		},
		initialize : function initialize() { 
		
			if (ajax.XMLticker.ajaxObject.readyState == 0) {
				ajax.XMLticker.contentTarget.innerHTML = "AJAX Error:\r\n [" + ajax.XMLticker.ajaxObject.status + "] " + ajax.XMLticker.ajaxObject.statusText;
			} else if ((ajax.XMLticker.ajaxObject.readyState == 1) || (ajax.XMLticker.ajaxObject.readyState == 2) || (ajax.XMLticker.ajaxObject.readyState == 3)) {
				ajax.XMLticker.contentTarget.innerHTML = ajax.loadingMessage(ajax.XMLticker.ajaxObject.readyState);
				var messagebox = (document.all ? document.all['messagebox'] : document.getElementById ? document.getElementById('messagebox') : null);
				if ((messagebox) && (messagebox != "undefined")) {
					this.working(messagebox, ajax.XMLticker.ajaxObject.readyState);
				}
			} else if (ajax.XMLticker.ajaxObject.readyState == 4) {
				if (ajax.XMLticker.ajaxObject.status == 200 || window.location.href.indexOf('http') == -1) {
					ajax.XMLticker.contentTarget = document.getElementById(ajax.XMLticker.tickerId).firstChild;
					var xmldata = ajax.XMLticker.ajaxObject.responseText;
					ajax.XMLticker.contentTarget.style.display = 'none';
					ajax.XMLticker.contentTarget.innerHTML = xmldata;
					if (ajax.XMLticker.contentTarget.getElementsByTagName('div').length == 0) {
						ajax.XMLticker.contentTarget.innerHTML = '<b>Error: </b> Fetching remote ticker file!';
						return;
					}
					document.getElementById(ajax.XMLticker.tickerId).onmouseover = function setEeventMouseOver() { ajax.XMLticker.mouseOverBol = 1; };
					document.getElementById(ajax.XMLticker.tickerId).onmouseout = function setEventMouseOut() { ajax.XMLticker.mouseOverBol = 0; };
					if (window.attachEvent) {
						window.attachEvent('onunload', function clearObject() { ajax.XMLticker.contentTarget = ajax.XMLticker.ajaxObject = null});
					}
					for (var i = 0; i < ajax.XMLticker.contentTarget.getElementsByTagName('div').length; i++) {
						if (ajax.XMLticker.contentTarget.getElementsByTagName('div')[i].className == 'message') {
							ajax.XMLticker.messages[ajax.XMLticker.messages.length] = ajax.XMLticker.contentTarget.getElementsByTagName('div')[i].innerHTML;
						}
					}
					ajax.XMLticker.contentTarget.innerHTML = '';
					ajax.XMLticker.contentTarget.style.display = 'block';
					ajax.XMLticker.rotateMessage();
				} else {
					ajax.XMLticker.contentTarget.innerHTML = "AJAX Error:\r\n [" + ajax.XMLticker.ajaxObject.status + "] " + ajax.XMLticker.ajaxObject.statusText;
				}
			} 
		},
		rotateMessage : function rotateMessage() {
			if (ajax.XMLticker.mouseOverBol == 1) {
				setTimeout(function rotateXmlMessages() { ajax.XMLticker.rotateMessage() }, 100);
			} else {
				ajax.XMLticker.fadeTransition('reset');
				ajax.XMLticker.contentTarget.innerHTML = ajax.XMLticker.messages[ajax.XMLticker.pointer];
				ajax.XMLticker.fadeTimer = setInterval(function tickerFadeTimer() { ajax.XMLticker.fadeTransition('up', 'fadeTimer') }, 100);
				ajax.XMLticker.pointer = (ajax.XMLticker.pointer < ajax.XMLticker.messages.length - 1) ? ajax.XMLticker.pointer + 1 : 0;
				setTimeout(function tickerMessageTimer() { ajax.XMLticker.rotateMessage() }, ajax.XMLticker.delay);
			}
		},
		fadeTransition : function fadeTransition(fadetype, timerId) {
			var contentTarget = ajax.XMLticker.contentTarget;
			if (fadetype == 'reset') {
				if (contentTarget.filters && contentTarget.filters[0]) {
					if (typeof contentTarget.filters[0].opacity == 'number') {
						contentTarget.filters[0].opacity = ajax.XMLticker.opacitySetting * 100; 
					} else {
						contentTarget.style.filter = 'alpha(opacity=' + ajax.XMLticker.opacitySetting * 100 + ')';
					}
				} else if (typeof contentTarget.style.MozOpacity != 'undefined' && ajax.XMLticker.opacityString != '') {
					contentTarget.style.MozOpacity = ajax.XMLticker.opacitySetting;
				}
			} else {
				ajax.XMLticker.opacitySetting = 1;
			}
			if (fadetype == 'up') {
				ajax.XMLticker.opacitySetting += 0.1;
			}
			if (fadetype == 'up' && ajax.XMLticker.opacitySetting >= 1) {
				clearInterval(ajax.XMLticker[timerId]);
			}
		}
	},
	suggest : {}
};

var tabs = { 
	focusTab: function focusTab(tabObj, obj) { 
		tabObj = (document.all ? document.all[tabObj] : document.getElementById ? document.getElementById(tabObj) : null); 
		obj = (document.all ? document.all[obj] : document.getElementById ? document.getElementById(obj) : null); 
		if (((obj) || (obj != 'undefined')) && ((tabObj) || (tabObj != 'undefined'))) { 
			for (i = 0; i < tabObj.childNodes.length; i++) { 
				if (tabObj.childNodes[i].tagName == "UL") { 
					var tabItems = tabObj.childNodes[i]; 
					for (j = 0; j < tabItems.childNodes.length; j++) { 
						if (tabItems.childNodes[j].tagName == "LI") { 
							if (tabItems.childNodes[j] != obj) { tabItems.childNodes[j].className = ''; 
							} else if (tabItems.childNodes[j] == obj) { 
								obj.className = 'current'; 
							}; 
						}; 
					}; 
				}; 
			}; 
		}; 
		return false; 
	} 
}; 
//-->
//]]>