function calcHeight(elem_id){
	a= document.getElementById(elem_id);
	if (a){
		var the_height= a.contentWindow.document.body.scrollHeight;//find the height of the internal page
		a.style.height=the_height + 15;//change the height of the iframe
		//a.style.width='100%';
	}
}

function calcHeightTop(frame_name) {
	a= parent.document.getElementById(frame_name);
	if (a){
		the_height= a.contentWindow.document.body.scrollHeight;
		a.style.height= the_height + 15;
		//a.style.width='100%';
	}
}

function loadFrames(leftURL, titleURL, listURL, list_editURL){
	l= top.window.left;
	t= top.window.title;
	ls= top.window.list;
	ls_edit= top.window.list_edit;

	if (leftURL=='null'){ // skrije frame
		l.style.display= 'none';
	}else if (leftURL!=''){ // ce ni nic ga ne zamenja, drugace gre na podan naslov
		l.document.write('');
		l.location.href= left;
	}

	if (titleURL=='null'){
		t.style.display= 'none';
	}else if (titleURL!=''){
		t.document.write('');
		t.location.href= titleURL;
	}

	if (listURL=='null'){
		ls.style.display= 'none';
	}else if (listURL!=''){
		ls.document.write('');
		ls.location.href= listURL;
	}

	if (list_editURL=='null'){
		//ls_edit.style.display= 'none';
		top.window.document.getElementById('list_edit_tr').style.display= 'none';
		top.window.document.getElementById('list_separator_tr').style.display= 'none';
		top.window.document.getElementById('list_td').style.height= '100%';
	}else if (list_editURL!=''){
		ls_edit.document.write('');
		top.window.document.getElementById('list_edit_tr').style.display= '';
		top.window.document.getElementById('list_separator_tr').style.display= '';
		top.window.document.getElementById('list_td').style.height= '40%';
		ls_edit.location.href= list_editURL;
	}
}

function toggle_view(item_id){
	a= document.getElementById(item_id);
	if (a){
		if (a.style.display==''){
			a.style.display= 'none';
		}else{
			a.style.display= '';
		}
	}
}

var prev_elem;
function change_style(elem_id, prev_style, new_style){
	a= document.getElementById(elem_id);
	if (a && a!=prev_elem){
		a.className= new_style;
	}
	if (prev_elem && prev_elem!=a){
		prev_elem.className= prev_style;
	}
	prev_elem= a;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}		

var elem_to_hold0;
var elem_to_hold1;
var elem_to_hold2;
function do_holding(offset1, offset2){
	if (navigator.appName == "Microsoft Internet Explorer"){
		var position0 = document.body.scrollTop;
	} else {
		var position0 = window.pageYOffset;
	}
	if (elem_to_hold1) var position1 = position0+offset1;
	if (elem_to_hold2) var position2 = position1+offset2;
	
	elem_to_hold0.style.top= position0;
	if (elem_to_hold1) elem_to_hold1.style.top= position1;
	if (elem_to_hold2) elem_to_hold2.style.top= position2;
}
function hold_position(row0_id, offset1, row1_id, offset2, row2_id){
	elem_to_hold0= document.getElementById(row0_id);
	//alert(row1_id);alert(row2_id);
	if (row1_id != 'undefined') elem_to_hold1= document.getElementById(row1_id);
	if (row2_id != 'undefined') elem_to_hold2= document.getElementById(row2_id);
	setInterval("do_holding("+offset1+","+offset2+")", 50);
}



function selectForm(element){
		 element.select();
}

// izbere opcijo v SELECT kontroli glede na podani value
function selectOption(valueID, selectControl)
{
	for (var i = 0; i < selectControl.options.length; i++) {
		if (selectControl.options[i].value == valueID) {
			selectControl.options[i].selected = true;
		}
	}
}

// oznaci/odznaci vse opcije v SELECT elementu in vrne število označenih
// (selectObject = SELECT objekt, do_check = true ali false
function setSelectOptions(selectObject, do_check)
{
    var selectCount  = selectObject.length;

    for (var i = 0; i < selectCount; i++) {
        selectObject.options[i].selected = do_check;
    }

	if (do_check) // vrnem število označenih elementov
		return selectCount;

	return 0;
}

// vrne število vseh označenih elementov v multiple selectu
function getSelectSelectedOptions(selectControl) {
	var count = 0;

	for (var i = 0; i < selectControl.options.length; i++) {
		if (selectControl.options[i].selected == true) {
			count++;
		}
	}
	return count;
}

// validate that the user made a selection other than default
function isChosen(select) {
	if (select.selectedIndex == 0) {
		return false;
	} else {
		return true;
	}
}
   
// validate that the user has checked one of the radio buttons
function isValidRadio(radio) {
	var valid = false;
	for (var i = 0; i < radio.length; i++) {
		if (radio[i].checked) {
			return true;
		}
	}
	return false;
}

//check e-mail
function check_email(address){
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(address) && reg2.test(address)) // ce je sintaksa pravilna
	   return true;

	return false;
}

//validates that the entry is a positive or negative NUMBER
function isNumber(elem) {
	var str = elem.value;
	var re = /^[-]?\d*\.?\d*$/;
	str = str.toString( );
	if (!str.match(re)) {return false;}
		return true;
}

// preverjanje števil
function CheckNumber(edit)
{
	var value = edit.value;
	var validText = "0123456789";
	var allValid = true;
	for (i = 0;  i < value.length; i++)
	{
		ch = value.charAt(i);
		for (j = 0;  j < validText.length;  j++)
			if (ch == validText.charAt(j))
				break;
			if (j == validText.length)
			{
				allValid = false;
				break;
			}
	}
	if (!allValid)
		return false;

	return (true);
}

// simulira combo box oz. v SELECT boxu iskanje glede na vtipkano
function smartOptionFinder(oSelect, oEvent) {
	var sKeyCode = oEvent.keyCode;
	var sToChar = String.fromCharCode(sKeyCode);
	if(sKeyCode >31 && sKeyCode<223){ //47-91 : 31-223;
		var sNow = new Date().getTime();
		if (oSelect.getAttribute("finder") == null) {
			oSelect.setAttribute("finder", sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow)
		} else if( sNow > parseInt(oSelect.getAttribute("timer"))+2000) { //Reset all;
			oSelect.setAttribute("finder", sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow) //reset timer;
		} else {
			oSelect.setAttribute("finder", oSelect.getAttribute("finder")+ sToChar.toUpperCase())
			oSelect.setAttribute("timer", sNow); //update timer;
		}
		var sFinder = oSelect.getAttribute("finder");
		var arrOpt = oSelect.options
		var iLen = arrOpt.length
		for (var i = 0; i < iLen ; i++) {
			sTest  = arrOpt[i].text;
			if (sTest.toUpperCase().indexOf(sFinder) == 0) {
				arrOpt[i].selected = true;
				break;
			}
		}
		event.returnValue = true;
	} else{
		//Not a digit;
	}
}

