// load all the functions
addOnLoad = function() {
	var wo = window.onload ? window.onload : function() {};
	var f = arguments;
		window.onload = function() {
			for (var i=0,j=f.length;i<j;i++) {
			f[i]();
		}
		wo();
	}
}
externalLinks = function() {
	if (!document.getElementsByTagName) return false;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
	var anchor = anchors[i];
	if (anchor.getAttribute("href") &&
		anchor.getAttribute("rel") == "external")
		anchor.target = "_blank";
	}
}
gotoTop = function() {
	location.href = location.href.replace('#top','') + '#top';
}

function handleGeneralbackLinks(){
	var allImages = getElementsByClassName(document, 'a', 'generalBackLink');
	var len = allImages.length;
	if(len>0){
		 for(i=0;i<len;i++){ 
			var a = allImages[i];
			a.onclick = function() { history.back();return false; }
		}
	}
}

function parseImages() {
	/*
	<div class="imageHolder"><a href="#" class="expandPicture><img src="#" /></a><span class="subtitle">To je opis slike</span></div>
	*/
	var allImages = getElementsByClassName(document, 'a', 'expandPicture');
	var len = allImages.length;

	if(len>0){
		 for(i=0;i<len;i++){ 
			var a = allImages[i];
			a.onclick = function() { return hs.expand(this); }
			var theDiv = document.createElement('div');
			theDiv.className = "pictureWithSubtitle";
			var parent = a.parentNode;
			parent.insertBefore(theDiv, a);
			theDiv.appendChild(a);
			if (a.firstChild) {
				var theSpan = document.createElement('span');
				theSpan.className = 'subtitle';
				theSpan.innerHTML = a.firstChild.alt;
				theDiv.appendChild(theSpan);
			}
		}
	}	
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	example: getElementsByClassName(document, "a", "info-links");
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements);
}

function disableUnclikableLinks(){
	var a = document.getElementsByTagName('a');
	var l = a.length;
	for(var i=0;i<l;i++){
		//var href = a[i].href;
		if(a[i].className=='notClickable'){
			a[i].onclick=function(){return false;};
			a[i].style.cursor='default';
			a[i].style.textDecoration = 'none';
		}
	}
}

function unscramble(){	
	 var all_elements=document.getElementsByName('scrambled_mail_href');
	 if(all_elements.length>0){
		 for(i=0;i<=all_elements.length-1;i++){ 
			var this_link = all_elements[i];
			
			//function that attaches onclick to all <a> elements that have scrambled mail...
			this_link.onclick = function () {
				var link = this;
				s="ocknv";
				r="";
				for(var i=0; i < s.length; i++) {
					n=s.charCodeAt(i);
					if (n>=8364) {n = 128;}
					r += String.fromCharCode(n-(2));
				}
				r+='o';
				link.href=r+":"+link.title;
			}
			
			//unscramble words inside '> <' tags
			var uglymail = this_link.firstChild.nodeValue;
			var nicemail='';
			for(var j=0; j < uglymail.length; j++) {
				n=uglymail.charCodeAt(j);
				// Due to ord, chr convert in PHP we have to manually code UTF8 chars here
				// UTF8 CODE -> ASCI KODE -> sign
				// 334 -> 65533 -> č
				//RM 65533 is č, add suport for č,š,ž, Č,Š,Ž
				if (n == '334') {
					nicemail += 'č';
				} else {
					if (n>=8364) {n = 128;}
					nicemail += String.fromCharCode(n-1);
				}
			}
			 this_link.firstChild.nodeValue = nicemail;
			
			//unscramble title tag (we have the email address there)
			var uglytag = this_link.title;
			//alert(uglytag);
			var nicetag = '';
			for(var j=0; j < uglytag.length; j++) {
				n=uglytag.charCodeAt(j);
				if (n>=8364) {n = 128;}
				nicetag += String.fromCharCode(n-1);
			}
			this_link.title=nicetag;
			 
		}
	 }
}

function debugObject(o, hidenulls) {
	var s;
	var j = 0;
	for(var i in o) {
		if (typeof o[i] != 'function' && !(hidenulls && o[i]==null)) {
			j++;
			s += i+'='+o[i];
			if (j % 2 == 0) s+="\n"; else s+="  |||  ";
		}
	}
	alert(s);
}

//target="_blank" is not valid. We use rel="external" instead and use this function.
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")anchor.target = "_blank";
	}
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}

//dont need this fix, becouse we do it with css
//addOnLoad(correctPNG);

addOnLoad(externalLinks);
addOnLoad(parseImages);
addOnLoad(unscramble);
addOnLoad(handleGeneralbackLinks);
addOnLoad(disableUnclikableLinks);
/**************************** event handling **********************************/
var aeOL = [];
function addEvent(o, n, f, l) {
	var a = 'addEventListener', h = 'on'+n, b = '', s = '';
	if (o[a] && !l) return o[a](n, f, false);
	o._c |= 0;
	if (o[h]) {
		b = '_f' + o._c++;
		o[b] = o[h];
	}
	s = '_f' + o._c++;
	o[s] = f;
	o[h] = function(e) {
		e = e || window.event;
		var r = true;
		if (b) r = o[b](e) != false && r;
    if (typeof o[s] == 'function') {  // ie7 problem
      r = o[s](e) != false && r;  
    }
		return r;
	};
	aeOL[aeOL.length] = { o: o, h: h };
};

addEvent(window, 'unload', function() {
	for (var i = 0; i < aeOL.length; i++) with (aeOL[i]) {
		o[h] = null;
		for (var c = 0; o['_f' + c]; c++)
			o['_f' + c] = null;
	}
});


function cancelEvent(e, c) {
	e.returnValue = false;
	if (e.preventDefault) e.preventDefault();
	if (c) {
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
	}
};

function redirectTo(url) {
	if (url==null || url=='' || String(url)=='undefined') {
	} else {
		window.location = url;
	}
}
