// OVERHERTZ ZIRON FRAMEWORK 1.0.0.0 (12 09 2011)
// Copyright (c) OverHertz OOD. All Rights reserved.
// 
// This software is copyrighted, and may not be used without
// permission from OverHertz OOD.
//
// URL:   http://www.overhertz.com/
// Email: developers@overhertz.com


//ajax
var scripts = document.getElementsByTagName('script');
var path = scripts[scripts.length-1].src.split('?')[0];      // remove any ?query
var mydir = path.split('/').slice(0, -1).join('/')+'/';  // remove last filename part of path

function getXMLHttpObject() {
	var xmlHttp = null;

	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlHttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE6, IE5
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your browser does not support XMLHTTP!");
	}
	return xmlHttp;
}


function WaitForImages(myObject) {
	var complet = true;
		
	for(var i=0; i < myObject.images.length; i++) {  
		if (myObject.images[i].complete == false) {
			complet = false;
			break;	
		}
	}
		
	if (complet) {
		clearTimeout(myObject.timeout);
		clearTimeout(myObject.wfi);			
		myObject.elem.innerHTML = myObject.tempel.innerHTML;
	} else {
		myObject.wfi = setTimeout(function() { WaitForImages(myObject) }, 100);	
	}
}


function AJAX_LoadPage(url, cid, showloader, waitimages) {
	var myObject = new Object();
	myObject.tempel = document.createElement('div');
	myObject.elem = 0; //elem
	myObject.wfi = 0; //wfi
	myObject.timeout = 0; //timeout
	myObject.images = new Array(); //images	
	
	showloader = typeof(showloader) != 'undefined' ? showloader : true;
	waitimages = typeof(waitimages) != 'undefined' ? waitimages : true;	
	 
	myObject.elem = document.getElementById(cid);
	show_loader = function() {
		myObject.elem.innerHTML = '<img alt="Loading" src="'+mydir+'../images/loading.gif" />';
	}
	
	var cleart = false;	
	if (myObject.elem.innerHTML == '') {
		show_loader();
	} else {
		cleart = true;
		if (showloader == true) {
			myObject.timeout = setTimeout("show_loader()",800);
		}
	}
		
	var xml_req = getXMLHttpObject();
	if (xml_req == null) {
	 	alert ("Browser does not support HTTP Request");
	 	return;
	}		
	
	
	xml_req.onreadystatechange = function() {
		//if ((xml_req.status == 200) && (xml_req.readyState == 4)) {
		if (xml_req.readyState == 4) {
			if (waitimages == true) {
				myObject.tempel.innerHTML = xml_req.responseText;
				var x = myObject.tempel.getElementsByTagName("img");   
				for(var i=0; i < x.length; i++) {  
					myObject.images[i] = new Image();
					myObject.images[i].src = x[i].src;
				}
				WaitForImages(myObject);
			} else {
				clearTimeout(myObject.timeout);
				myObject.elem.innerHTML = xml_req.responseText;
			}
		}
	}

	xml_req.open("GET", url, true);
	xml_req.send(null);	
}

function refreshWidget(widget, container, params) {
	return AJAX_LoadPage(mydir+'../widgets/'+widget+'.php?container='+container+'&amp;'+params, container);
}

function toggleElementVisible(name) {
	var el = document.getElementById(name);
		
	if (el.style.visibility == 'hidden') {
		el.style.visibility = 'visible';
        el.style.display = 'block';
	} else {
		el.style.visibility = 'hidden';
        el.style.display = 'none';			
	}
}

//cookie functions
function getCookie(c_name) {
	var i, x, y, ARRcookies = document.cookie.split(";");
	
	for (i=0; i < ARRcookies.length; i++) {
		x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
		y = ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
		x = x.replace(/^\s+|\s+$/g,"");
		
		if (x == c_name) {
			return unescape(y);
		}
	}
}	
	 
function setCookie(c_name,value,exdays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
	document.cookie=c_name + "=" + c_value;
}	 

//shopping cart functions
function addToShopCart(prodid, qty) {
	var prods = [];
	prods = getCookie('prodl');				
	prods = prods + ','+prodid;
	setCookie('prodl', prods, 3);
}

function remFromShopCart(prodid, remall) {
	var prods = [];
	prods = getCookie('prodl');	
	if (remall == false) {		
		//prods = prods.replace(prodid+',','');
		prods = prods.replace(prodid,'');
	} else {
		//prods = prods.replace(new RegExp(prodid+',', 'g'),'');
		prods = prods.replace(new RegExp(prodid, 'g'),'');
	}
	setCookie('prodl', prods, 3);
}

function clearShopCart() {
	setCookie('prodl', '', 0);
}

///// tabs etc

function showTab(pagray, selpag, tabray, seltab, tabclasson, tabclassoff) {
	var i = 0;
	var el = null;
	while (i < pagray.length) {
		el = document.getElementById(pagray[i]);
		if (pagray[i] == selpag) {
			el.style.visibility = 'visible';
			el.style.display = 'block';
		} else {
			el.style.visibility = 'hidden';
			el.style.display = 'none';
		}
		i++;
	}
	
	i = 0;
	while (i < tabray.length) {
		el = document.getElementById(tabray[i]);
		if (tabray[i] == seltab) {
			el.className = tabclasson;
		} else {
			el.className = tabclassoff;
		}
		i++;
	}	
	return;
}
