	function numberRestriction(evt, obj, decimal) {
		var charCode = (evt.which) ? evt.which : event.keyCode;
		if (decimal && ((charCode == 46) || (charCode == 44)) 
			&& (obj.value.indexOf(".")==0) && (obj.value.indexOf(",")==0)) return true;
		if ((charCode == 45) && (obj.value.indexOf("-")<0)) return true;
		if (charCode> 31 && (charCode < 48 || charCode> 57)) return false;
	}
	
	function validate_integer(fld) {
		str = fld.value;
		if (str == "") return true;
		var find = str.search(/^((\+|-)\d)?\d*$/);
		if (find == -1) return false;
			else return true;
	}
 
	function validate_float(fld) {
		str = fld.value;
		if (str == "") return true;
		var find = str.search(/^((\+|-)\d)?\d*((\.|,)\d*)?$/);
		if (find == -1) return false;
			else return true;
	}	
	
	function validate_email(fld) {
		str = fld.value;
		if (str == "") return true;
	 	var find = str.search(/^[a-z0-9\.\-_]{1,}@[a-z0-9\.\-_]{1,}\.[a-z]{2,4}$/);  
		if (find == -1) return false;
			else return true;
	}	
	
	function validate_date(fld) {
		str = fld.value;
		if (str == "") return true;
		var datePat = /^(\d{1,2})(\/|-|.)(\d{1,2})\2(\d{2}|\d{4})$/;
		var matchArray = str.match(datePat);
		if (matchArray == null) return false;
		var day		= matchArray[1];
		var month	= matchArray[3];
		var year	= matchArray[4];
		if (month < 1 || month> 12) return false;
		if (day < 1 || day> 31) return false;
		if ((month == 4 || month == 6 || month==9 || month == 11) && day == 31) return false;
		if (month == 2) {
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day> 29 || (day == 29 && !isleap)) return false;
		}
		return true;
	}
	
	function validate_dateTime(fld) {
		str = fld.value;
		if (str == "") return true;
		var datePat = /(\d{1,2})(\/|-|.)(\d{1,2})(\/|-|.)(\d{1,4}) (\d{1,2})(:)(\d{1,2})$/;
		var matchArray = str.match(datePat);
		if (matchArray == null) return false;
		var day		= matchArray[1];
		var month	= matchArray[3];
		var year	= matchArray[4];
		var hh		= matchArray[6];
		var mm		= matchArray[8];
		if (month < 1 || month> 12) return false;
		if (day < 1 || day> 31) return false;
		if ((month == 4 || month == 6 || month==9 || month == 11) && day == 31) return false;
		if (month == 2) {
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day> 29 || (day == 29 && !isleap)) return false;
		}
		if (hh < 0 || hh> 23) return false;
		if (mm < 0 || mm> 59) return false;
		return true;
	}
	
	function validate_time(fld) {
		str = fld.value;
		if (str == "") return true;
		var timePat = /(\d{1,2})(:)(\d{1,2})$/;
		var matchArray = str.match(timePat);
		if (matchArray == null) return false;
		var hh		= matchArray[1];
		var mm		= matchArray[3];
		if (hh < 0 || hh> 23) return false;
		if (mm < 0 || mm> 59) return false;
		return true;
	}
	
	function validate_TelNum(fld) {
		str = fld.value;
		if (str == "") return true;
		var timePat = /^(((\++)\d)|\d)[0-9\()\ ]{1,}$/;
		var matchArray = str.match(timePat);
		if (matchArray == null) return false;
		return true;
	}

	function groupSumRestriction(obj, numRestriction) {
		if (numRestriction != "") {
			sumValues = 0;
		    for (var i=0; i<obj.form.elements.length; i++) {
				var e = obj.form.elements[i];
				if ((e.type == 'text') && (e.id == obj.id) && obj.value != "") sumValues = sumValues + Number(e.value);
		    }
			if (sumValues> numRestriction) {
				obj.value = "";
				return "Skupni seštevek vrednosti skupine presega omejitev " + numRestriction + "!";
			} else return "";
		}
	}
	
	function canSelectOption(obj) {
		foundEqual = false;
	    for (var i=0; i<obj.form.elements.length; i++) {
			var e = obj.form.elements[i];
			if ((e.type == 'select-one') && (e.id == obj.id) && (e.name != obj.name) && (obj.value == e.value) && (obj.value != "")) {
				foundEqual = true;
				break;
			}
	    }
		if (foundEqual) {
			obj.value = "";
			return "V skupini ne smete biti izbrana dva enaka odgovora!";
		} else return "";
	}
	
	function canCheck(chk, canSelect,chkName) {
		checkedCount = 0
	    for (var i=0; i<chk.form.elements.length; i++) {
			var e = chk.form.elements[i];
			if ((e.type == 'checkbox') && (e.name == chkName) && e.checked) checkedCount = checkedCount + 1;
	    }
		if (checkedCount> canSelect) {
			chk.checked = false;
			//alert("Izberete lahko samo " + canSelect + "/" + count + " checkBox-ov!");
		}	
	}
/*		
	function newWindow(url, name, w, h, scroll, menu) {
		l = (screen.width - w) / 2;
		t = (screen.height - h) / 2;
		var settings = "left="+l+",";
		settings += "top="+t+",";
		settings += "width="+w+",";
		settings += "height="+h+",";
		settings += "toolbar="+menu+","; 
		settings += "menubar="+menu+","; 
		settings += "scrollbars="+scroll+",";
		settings += "resizable=yes";
		var new_win = window.open(url, name, settings);
		if (parseInt(navigator.appVersion)>= 4) 
			if (new_win.window) new_win.window.focus();
	}
*/	
	function getPageYstart() {
		return (typeof window.pageYOffset != 'undefined') ? (window.pageYOffset) : (window.document.documentElement && window.document.documentElement.scrollTop) ? window.document.documentElement.scrollTop : (window.document.body) ? window.document.body.scrollTop : 0; 	
	}
	
	function gotoAnchor(url,a) {
		if (a=='save') savePage('Save',false); else
		if (a=='saveSub') saveSubPage('Save',false); else
		if (url != '') window.location = url + '#' + a;
			else window.location.hash = a;
	}
	
	function findAnchor(obj) {
		var index = obj.selectedIndex;
		a = obj.options[index].id;
		if (a != "") 
		if (a=='save') savePage('Save',false); else
		if (a=='saveSub') saveSubPage('Save',false); else
		if (a.toString().indexOf("SH:")>-1) {
			a = replace(a,"SH:","");
			showHideDivVar(a,obj.name);
		} else window.location.hash = a;
	}
	
	// Za hidanje in showanje tabel
	function dt_toggleRow(source) {
		//target is the right cell
		if(document.all) target = source.parentElement.cells[1];
		else target = source.parentNode.lastChild ;
		
		dt_toggleTarget( target, dt_toggleSource( source ) ) ;
	}
	
	function dt_toggleTable(source) {
		var switchToState = dt_toggleSource( source ) ;
		if(document.all) {
			var table = source.parentElement.parentElement ;
			for ( var i = 1; i < table.rows.length; i++ ) {
				target = table.rows[i] ;
				dt_toggleTarget( target, switchToState ) ;
			}
		}
		else {
			var table = source.parentNode.parentNode ;
			for ( var i = 1; i < table.childNodes.length; i++ ) {
				target = table.childNodes[i] ;
				if(target.style) {
					dt_toggleTarget( target, switchToState ) ;
				}
			}
		}
	}
	
	function dt_toggleBottomRow(source) {
		var switchToState = dt_toggleSource( source ) ;
		if(document.all) {
			var table = source.parentElement.parentElement ;
			toggle_row = -1;
			for ( var i = 0; i < table.rows.length; i++ )
				if (table.rows[i] == source) toggle_row = i;
			if (toggle_row> 0) {
				target = table.rows[toggle_row + 1] ;
				dt_toggleTarget( target, switchToState ) ;
			}
		}
		else {
			var table = source.parentNode.parentNode ;
			toggle_row = -1;
			for ( var i = 0; i < table.childNodes.length; i++ ) 
				if (table.childNodes[i] == source) toggle_row = i;
			if (toggle_row> 0) {
				target = table.childNodes[toggle_row + 1] ;
				if (target.style) dt_toggleTarget( target, switchToState ) ;
			}	
		}
	}
	
	function dt_toggleSource ( source ) {
		if ( source.title == 'click to expand' ) {
//			source.style.fontStyle = 'normal' ;
			source.title = 'click to collapse' ;
			return 'open' ;
		} else {
//			source.style.fontStyle = 'italic' ;
			source.title = 'click to expand' ;
			return 'closed' ;
		}
	}
	
	function dt_toggleTarget ( target, switchToState ) {
		if ( switchToState == 'open' )	target.className = 'expandShow';
		else target.className = 'expandHidden';
	}
		
	// edit mode functions
	function set_clickedcell(ev, row,col,objID,i_tdID,type) {
		if (!ev) ev = window.event; 

		window.top.Editor.location.replace("dt_editor_design.cfm?Selected="+objID+"&objType="+type+"&Col="+col+"&Row="+row);
		colorSelectedObject(i_tdID);
		
		if (ev.stopPropagation) { ev.stopPropagation(); ev.preventDefault(); }
			else if(typeof ev.cancelBubble != 'undefined') { ev.cancelBubble=true; ev.returnValue=false; }
		return false;
	}
	
	function colorSelectedObject(i_tdID) {
		myObj = document.getElementById(i_tdID);
		if (previous_ID != "" && previous_ID != i_tdID) {
			mypObj = document.getElementById(previous_ID);
			if (mypObj) {
				mypObj.style.backgroundColor = previous_color;
				previous_color = myObj.style.backgroundColor;
			}
		}
		previous_ID = i_tdID;
		myObj.style.backgroundColor = "FECC68";
	}
	


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;
}
/*
function httpRequest(url) {
  var objHTTP, result, rnd;
  rnd = Math.random();
  url = url + "&" + rnd;
  // For Netscape 6+ browsers (or other browsers that support XMLHttpRequest)
  if (window.XMLHttpRequest) {
   objHTTP = new XMLHttpRequest();
   objHTTP.open("GET", url, false);  
   objHTTP.send(null);
   result = objHTTP.responseText;  
  // For IE browsers under Windows (version 5 and later)
  } else if (window.ActiveXObject) {
   objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
   objHTTP.open("GET", url, false);  
   objHTTP.send(null);
   result = objHTTP.responseText;
  } else {
   alert("Napaka, Brskalnik, ki ga uporabljate ne podpira RPC klicev.");  
  } 
  return result;
 }
 */
function formToUrlParams(frm, baseObjName) {
	var els = frm.elements;
	var l = els.length;
	var result = '';
	for (i=0; i<l; i++) {
		var el = els[i];
		var vName = el.name; 
		if (vName.indexOf(baseObjName) > -1 && 
			(el.type != 'checkbox' || (el.type == 'checkbox' && el.checked)) ) {		
			if (result != '') result = result + '&';
			var value_ = el.value;
			result = result + vName + '=' + encodeURI(value_);
		}
	}
	return result;
}
 
function refreshObject(dir_ ,objID, objContainerID, assignmentID, objectParentID, response, lan, appendToUrl, initFrm) {
	if (typeof(initFrm) != 'undefined') initFrm = "1";
	var Url = dir_ + "Requests/getObject.cfm?objId=" + objID + "&assignmentID=" + assignmentID + "&objectParentID=" + objectParentID + "&response=" + response + "&lan=" + lan + "&dir_=" + dir_ + "&" + appendToUrl;
	var contents = httpRequest(Url);
	document.getElementById(objContainerID).innerHTML = contents;
	if (initFrm) initForm('');
}

function refreshObject_postedData(dir_ ,objID, objContainerID, assignmentID, objectParentID, response, lan, appendToUrl, postedData, initFrm) {
	if (typeof(initFrm) != 'undefined') initFrm = "1";
	var Url = dir_ + "Requests/getObject.cfm?objId=" + objID + "&assignmentID=" + assignmentID + "&objectParentID=" + objectParentID + "&response=" + response + "&lan=" + lan + "&dir_=" + dir_ + "&" + appendToUrl;
	postedData = 'postedData=' + encodeURIComponent(postedData);
	var contents = httpRequestPost(Url, '', postedData);
	document.getElementById(objContainerID).innerHTML = contents;
	if (initFrm) initForm('');
}

function refreshObject2(frm, baseObjName, dir_ ,objID, objContainerID, assignmentID, objectParentID, response, lan, appendToUrl, Post, SubPage) {
	if (typeof(Post) == 'undefined') Post = true;
	if (!Post) Post = true; // Mora bit post
	if (typeof(SubPage) == 'undefined') SubPage = 0;
	var Url = dir_ + "Requests/getObject.cfm?post=" + Post + "&objId=" + objID + "&assignmentID=" + assignmentID + "&objectParentID=" + objectParentID + "&response=" + response + "&lan=" + lan + "&dir_=" + dir_ + "&SubPage=" + SubPage + "&" + appendToUrl;
	if (Post) var contents = httpRequestPost_prefix(Url, frm, baseObjName);
		else var contents = httpRequest(Url);
	document.getElementById(objContainerID).innerHTML = contents;
	initForm('');
}
 
function defocus() {
	var el;
	try{
		document.body.focus();
	} catch(err) {
		try{
			el = document.getElementById("FormFunction");
			el.focus();
		}catch(err) {
		alert(err);
		}		
	}
}

function dt_change() {
	page_modified = true;
	if (setVertexActionButtons) setVertexActionButtons(true);
}

// ----------------------------------------------------------------------------
// ----- Skrije dive znotraj objekta in pokaže izbranega ----------------------
// ----------------------------------------------------------------------------
function showSelectedDiv(parentID,divID) {
	var parent = document.getElementById(parentID);
	if (parent) {
		var lst = parent.getElementsByTagName("div");
		for (x=0;x<lst.length;x++) {
			el = lst[x];
			if (el.className=="visVisible" || el.className=="visHidden") {
				if (el.id == divID) el.className="visVisible";
					else el.className="visHidden";
			}
		}		
	} 
}

function showHideDiv(divID,show) {
	var div = document.getElementById(divID);
	if (div) {
		if (show) div.className="visVisible"; 
			else div.className="visHidden";
	}
}

// ----------------------------------------------------------------------------
// ----- Skrije trenutno prikazane in pokaže novega ----------------------
// ----------------------------------------------------------------------------
function showHideDivVar(divID,varName) {

	if (typeof(window[varName]) == "undefined") var prikazan = '';
		else var prikazan = eval(varName);
	// skrijem starega	
	if (prikazan != divID && prikazan != '') {
		var div = document.getElementById(prikazan);
		if (div) div.className="visHidden";
	}
	
	// pokažem novega
	if (divID != '') {
	var div = document.getElementById(divID);
	if (div) {
		div.className="visVisible";
		eval(varName + " = '" + divID + "'");
	}}
}