	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;
	}
	
	var merlin_id = ""; 
	function colorSelectedObject(id) {
		var e;
		
		if (merlin_id != "" && merlin_id != id) {
			e = document.getElementById(merlin_id);
			if (e) { 
				var a = e.getAttribute('prevClass'); 
				e.className = (a==null) ? "" : a; 
			}
		}
		merlin_id = id;
		e = document.getElementById(id);
		if (e) {
			if (e.className != "merlinEditor_selected") e.setAttribute('prevClass', e.className);
			e.className = "merlinEditor_selected";
		}
	}
	


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);
}

function dt_odosPasteClipboard(e,oid) {
	var m = document.getElementById('buttonPasteMenu');
	if (!m) { var m=document.createElement("div"); m.id='buttonPasteMenu'; m.style.position='absolute'; document.body.appendChild(m); }
	if (m) {
		var rightedge = ie5 ? document.body.clientWidth-e.clientX : window.innerWidth-e.clientX;
		var bottomedge = ie5 ? document.body.clientHeight-e.clientY : window.innerHeight-e.clientY;

		var val = 0;
		if (rightedge < m.offsetWidth) { // desno ni dovolj placa
			val = ie5 ? document.body.scrollLeft+e.clientX-m.offsetWidth : window.pageXOffset+e.clientX-m.offsetWidth;
			if 	(val < 0) val = 0; val = getPageOffsetLeft(e); if (sirina > m.offsetWidth) val = sirina - m.offsetWidth;
		} else  val = ie5 ? document.body.scrollLeft+e.clientX : window.pageXOffset+e.clientX;
		m.style.left = val + "px";
		m.style.top = (ie5 ? document.body.scrollTop+e.clientY : window.pageYOffset+e.clientY) + 2 + "px";
		m.className = "popupMenu";
		listContextMenu += 'buttonPasteMenu,';

		//var par = httpRequest(cfcPrefix+'cfc/urlCFCCall.cfm?cfcObject=datoteke&method=desktopKamPrilepiti&source='+source+'&datotekaPovezavaId=0');
		//if (par != "") par = "&" + par;
		callOdosDesktop('pripraviClipboard','datotekaId=0&tipID=1&merlinObjectID='+oid, dt_odosPasteClipboardMenu);
	}
	stopEvent(e);
}

function dt_odosPasteClipboardMenu(status, res, url) {
	if (res != '') {	
		var par = urlParamValue("merlinObjectID", url); 
		if (par!="") {
			par = "&merlinObjectID="+superTrim(par); 
			par += '$' + document.getElementById('assignmentID').value; 
			var e = document.getElementById('Response'); if (e) par += '$' + e.value; else par += '$1';
			e = document.getElementById('objectParentID'); if (e) par += '$' + e.value; else par += '$'; 
		}
		var r = httpRequest("cfc/urlCFCCall.cfm?cfcObject=datoteke&method=meniClipBoard&clipboard="+res+par);
		r = superTrim(r);
		var m = document.getElementById('buttonPasteMenu');
		if (m && (r == '' || r == '| ')) { m.innerHTML = '<a id="disabled">na odloĹľiĹˇÄŤu ni znanih formatov</a>'; } else { if (m) m.innerHTML = r.split("|")[0]; }
	}
	
}

/*
function desktopPaste_callBack(status, res, url) {
	var r = res.split(":");
	if (r[0]=='OK') {	
		if (r.length > 1) {
			switch(r[1]) {
				case 'ZIP': 
					var kam = urlParamValue("kam",url);
					kam = "&" + kam.replace(":","=");
					document.location.href = "podrocja_datoteke_extractZIP.cfm?hId=" + Base64.encode(r[2]) + kam + "&previous_page=" + document.location.href;
					return;
				break;
				case 'datotekaID': 
					httpRequest(cfcPrefix+"cfc/urlCFCCall.cfm?cfcObject=datoteke&method=pripraviDatotekaEditor&datotekaID=" + r[2]);				
				break;
			}
		}
		document.location.reload(); // vse naložil, reload strani		
	} else alert(res);

	document.location.reload(); // vse naložil, reload strani		
}
*/


// ----------------------------------------------------------------------------
// ----- 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 + "'");
	}}
}
