function showTooltip(name, e) {
	var elem = $(name + 'Tooltip');
	elem.style.visibility = 'visible';

	if(e.clientX > screen.width) {
		elem.style.left = screen.width + 'px';
	} else {
		elem.style.left = e.clientX + 20 + 'px';
	}

	elem.style.top = e.clientY + 'px';
}

function hideTooltip(name) {
	$(name + 'Tooltip').style.visibility = 'hidden';
}

function getElementsByClassName(classname, node) {
      if(!node) node = document.getElementsByTagName("body")[0];
      var a = [];
      var re = new RegExp('\\b' + classname + '\\b');
      var els = node.getElementsByTagName("*");
      for(var i=0,j=els.length; i<j; i++)
      if(re.test(els[i].className))a.push(els[i]);
      return a;
}
function checkNewPageForm(f) {
	var error = '';

	with(f) {
		if(isEmpty(page_name)) {
			error += "Niste vnesli ime spletne strani!\n";
		}

		if(isEmpty(page_title)) {
			error += "Niste vnesli naslov (title) spletne strani!\n";
		}
	}

	if(error != '') {
		alert("Opozorilo:\n\n" + error);
		return false;
	}

	return true;
}
function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}
function checkAnketa(f) {
	var check = false;
	var len = f.answer_id.length;

	for(var i = 0; i < len; i++)
		if(f.answer_id[i].checked == true)
   			check = true;

	if(!check) {
		alert("Niste izbrali odgovora!");
		return false;
	}

	return true;
}
function redirect(url) {
	location.href = url;
}

function isEmpty(elem) {
	return (elem.value == '');
}

function isEmail(email) {
	if(email && typeof email == 'object') email = email.value;

	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}

function OpenWindow(url, width, height, top, left) {
	if(top == undefined) top = 0;
	if(left == undefined) left = 0;
	if(width == undefined) width = 820;
	if(height == undefined) height = 880;

	var win = window.open(url, "",'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width='+width+',height='+ height +',top='+top+',left='+left);
}

function popUp(url, width, height, top, left) {
	OpenWindow(url, width, height, top, left);
}

function customWindow(url, width, height) {
	if(width == undefined) width = 660;
	if(height == undefined) height = 500;
	OpenWindow(url, width, height, 0, 0);
}

function AjaxGetter(url) {
	$('loaderDiv').style.visibility = 'visible';
	$('loaderDiv').innerHTML = "<div class='loader_div'><img src='images/ajax-loader.gif' align='absmiddle'></div>";
	new Ajax.Request(url, {asynchronous:true, method: 'get', onSuccess:handlerFunc});

}
function makeBackup(url){
	$('backupdiv').innerHTML = '<img src="../images/ajax-loader.gif" style="position:absolute; margin-top:-10px;">';
	new Ajax.Request(url, {asynchronous: true, method: 'post', parameters:'', onSuccess:handlerFunc2, onFailure:errFunc});
}
function previewBackup(id){
	new Ajax.Updater('previewBackup', './?mod=backup&action=preview&backup_id='+id+'', {onComplete:function(){ new Effect.Highlight('previewBackup');},asynchronous:true, evalScripts:true})

}
var errFunc = function(t) {
		    alert('Error ' + t.status + ' -- ' + t.statusText);
		}
function handlerFunc() {
	$('loaderDiv').innerHTML = '';
	$('loaderDiv').style.visibility = 'hidden';
}
function handlerFunc2() {
	$('backupdiv').innerHTML = 'Varnostna kopija shranjena.';
	new Effect.Pulsate('backupdiv');

}
function switchMenu(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display != 'block') ? 'block' : 'none';
}

function checkTellafriend(f) {
	var error = '';

	with(f) {
		if(isEmpty(prejemnik_email)) {
			error += "Prejemnikov email prosim!\n";
		}
		else {
			if(!isEmail(prejemnik_email)) {
				error += "Prejemnikov email ni pravilen (format)!\n"
			}
		}

		if(isEmpty(posiljatelj_email)) {
			error += "Pošiljateljev (vaš) email prosim!\n";
		}
		else {
			if(!isEmail(posiljatelj_email)) {
				error += "Posiljateljev (vaš!) email ni pravilen (format)!\n"
			}
		}

		if(isEmpty(ht_code)) {
			error += "Anti spam kodo prosim!?\n";
		}
	}
	if(error != '') {
		alert("HočemTo opozorilo: \n\n" + error);
		return false;
	}
	return true;
}

function serialize( mixed_value ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Arpad Ray (mailto:arpad@php.net)
    // +   improved by: Dino
    // +   bugfixed by: Andrej Pavlovic
    // +   bugfixed by: Garagoth
    // +      input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html)
    // +   bugfixed by: Russell Walker (http://www.nbill.co.uk/)
    // %          note: We feel the main purpose of this function should be to ease the transport of data between php & js
    // %          note: Aiming for PHP-compatibility, we have to translate objects to arrays
    // *     example 1: serialize(['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'
    // *     example 2: serialize({firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'});
    // *     returns 2: 'a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}'
 
    var _getType = function( inp ) {
        var type = typeof inp, match;
        var key;
        if (type == 'object' && !inp) {
            return 'null';
        }
        if (type == "object") {
            if (!inp.constructor) {
                return 'object';
            }
            var cons = inp.constructor.toString();
            match = cons.match(/(\w+)\(/);
            if (match) {
                cons = match[1].toLowerCase();
            }
            var types = ["boolean", "number", "string", "array"];
            for (key in types) {
                if (cons == types[key]) {
                    type = types[key];
                    break;
                }
            }
        }
        return type;
    };
    var type = _getType(mixed_value);
    var val, ktype = '';
    
    switch (type) {
        case "function": 
            val = ""; 
            break;
        case "boolean":
            val = "b:" + (mixed_value ? "1" : "0");
            break;
        case "number":
            val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;
            break;
        case "string":
            val = "s:" + encodeURIComponent(mixed_value).replace(/%../g, 'x').length + ":\"" + mixed_value + "\"";
            break;
        case "array":
        case "object":
            val = "a";
            /*
            if (type == "object") {
                var objname = mixed_value.constructor.toString().match(/(\w+)\(\)/);
                if (objname == undefined) {
                    return;
                }
                objname[1] = serialize(objname[1]);
                val = "O" + objname[1].substring(1, objname[1].length - 1);
            }
            */
            var count = 0;
            var vals = "";
            var okey;
            var key;
            for (key in mixed_value) {
                ktype = _getType(mixed_value[key]);
                if (ktype == "function") { 
                    continue; 
                }
                
                okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);
                vals += serialize(okey) +
                        serialize(mixed_value[key]);
                count++;
            }
            val += ":" + count + ":{" + vals + "}";
            break;
        case "undefined": // Fall-through
        default: // if the JS object has a property which contains a null value, the string cannot be unserialized by PHP
            val = "N";
            break;
    }
    if (type != "object" && type != "array") {
        val += ";";
    }
    return val;
}
function disableEnterKey(e)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}
