submitPoll = function(f) {
	var form = document.forms[f];
	if (!form) return;
	var v = false;
	var i = form['uid'];
	for (var n = 0; n < form['poll_' + i].length; n++) {
		if (form['poll_' + i][n].checked) {
			v = true;
			break;
		}
	}
	return v;
}

String.prototype.startsWith = function(s) {return (s==null)? false : (this.substring(0, s.length)==s);};
String.prototype.endsWith = function(s) {return (s==null)? false : (this.substr(this.length-s.length,s.length)==s);};
/**
 * Searches for specific occurence of <tt>search</tt>,  <strong>backwards</strong>
 * while starting at <tt>startFrom</tt>
 * @param search String to find.
 * @param startFrom Index of string at which to start. If not given assumes the
 *  end of string
 * @return First occurence of given parameter or -1 if it cannot be found.
 */
String.prototype.firstIndexOfBackwards = function(search, startFrom) {
	if(!search || search == null) {
		return -1;
	}
	var lastEnd;
	if(startFrom) {
		lastEnd = startFrom > this.length ? this.length : startFrom;
	} else {
		lastEnd = this.length;
	}
	lastEnd = lastEnd - (search.length - 1);
	
	while(lastEnd >= 0) {
		if(this.substr(lastEnd, search.length) == search) {
			return lastEnd;
		}
		lastEnd--;
	}
	return -1;
};
hasClass = function(elm, cls) {
	if (!elm || !elm.className) return null;
	return (' '+elm.className+' ').indexOf(' '+cls+' ')+1;
}
changeClass = function(elm, oldcls, newcls) {
	if (!elm) return null;
	var c = elm.className.split(' ');
	for (var i=0;i<c.length;i++) {
		if (c[i]==oldcls || c[i]==newcls || c[i]=='') c.splice(i,1);
	}
	c.push(newcls);
	elm.className = c.join(' ');
}
__ebi = function(id) {
	var elm = document.getElementById(id);
	if (arguments.length>1) {
		var elms = {};
		elms[id] = elm;
		for (var i=1;i<arguments.length;i++) elms[arguments[i]] = __ebi(arguments[i]);
		return elms;
	}
	return elm;
}
__ebt = function(tag,elm) {
	return (elm? elm : document).getElementsByTagName(tag);
}
switchframes = function(linkElement) {
	var frame = 'hA1';
	if (linkElement.href.indexOf('hA1') >= 0) frame = 'hA1';
	else if (linkElement.href.indexOf('hA2') >= 0) frame = 'hA2';
	else if (linkElement.href.indexOf('hA3') >= 0) frame = 'hA3';
	else if (linkElement.href.indexOf('hA4') >= 0) frame = 'hA4';
	var elms = __ebi('hA1','hA1q','hA2','hA2q','hA3','hA3q','hA4','hA4q');
	for (var p in elms) {
		if (!elms[p]) continue;
		if (elms[p].id.startsWith(frame)) changeClass(elms[p],'','selected');
		else changeClass(elms[p],'selected','');
	}
	return false;
}
enhanceLinks = function(classNames) {
	var elms = __ebt("a");
	var elm;
	for (var i=0;i<elms.length;i++) {
		elm = elms[i];
		for (var j=0;j<classNames.length;j++) {
			if (hasClass(elm,classNames[j])) {
				fn = eval(classNames[j]);
				if (typeof(fn)=='function') elm.onclick = function() {return fn(this);}
			}
		}
	}
}
/*
	CALC 
*/
function roundIt(num) {
	return Math.round((num)*1000)/1000;
}
function clearInputs() {
	document.getElementById('metre').value = '';
	document.getElementById('litre').value = '';
	document.getElementById('kilos').value = '';
}
function displayProperties(gasID) {
	/* 	gas array structure:
		-----------------------------------
		INDEX	DESCRIPTION
		0		gas name
		1		heat of vaporization
		2		boiling point
		3		1m3 = ? kg
		4		1m3 = ? l
		5		1kg = ? m3
		6		1kg = ? l
		7		1l = ? m3
		8		1l = ? kg
		-----------------------------------
	*/
	gasArray = new Array();
	gasArray['none']=new Array('Izberite plin','-','-');
	gasArray['o2']=new Array('Kisik','213','-183','1.311','1.147','0.763','0.876','0.872','1.142');
	gasArray['n2']=new Array('Dušik','199','-195,8','1.147','1.418','0.872','1.236','0.705','0.809');
	gasArray['h2']=new Array('Vodik','454,3','-252.8','0.082','1.163','12.12','14.10','0.859','0.071');
	gasArray['ar']=new Array('Argon','160,8','189,9','1.636','1.172','0.611','0.718','0.853','1.396');
	gasArray['he']=new Array('Helij','20,4','-268,9','0.164','1.316','6.106','8.000','0.759','0.125');
	gasArray['co2']=new Array('Ogljikov dioksid','571,1','-78,5','1.813','2.391','0.552','1.319','0.431','0.758');
	gasArray['amonijak']=new Array('Amonijak','-','-','0.708','1.000','1.413','1.413','1.000','0.708');
	gasArray['zrak']=new Array('Zrak','-','-','1.186','1.351','0.843','1.144','0.740','0.874');
	gasArray['propan']=new Array('Propan','-','-','2.019','3.731','0.495','1.848','0.268','0.541');
	gasArray['unp']=new Array('UNP','-','-','2.441','4.230','0.409','1.733','0.236','0.577');
	gasArray['securpneus']=new Array('Securpneus','-','-','1.147','1.418','0.872','1.236','0.705','0.809');
	
	var n = document.getElementById('gasname');
	var v = document.getElementById('vapor');
	var b = document.getElementById('boilp');
	n.innerHTML = gasArray[gasID][0];
	v.innerHTML = gasArray[gasID][1];
	b.innerHTML = gasArray[gasID][2];
	
	//	calculating
	var calculate = document.getElementById('calculate');
	calculate.onclick = function() {
		var count = 0;
		var m = document.getElementById('metre');
		var mn = parseFloat(m.value.replace(/,/,'.'));
		var l = document.getElementById('litre');
		var ln = parseFloat(l.value.replace(/,/,'.'));
		var k = document.getElementById('kilos');
		var kn = parseFloat(k.value.replace(/,/,'.'));
		if(m.value) {count++;}
		if(l.value) {count++;}
		if(k.value) {count++;}
		if(count > 1) {
			alert('Vpišete lahko samo eno število!');
			return false;
		}
		if(mn > 0) {
			k.value = roundIt(mn * parseFloat(gasArray[gasID][3]));
			l.value = roundIt(mn * parseFloat(gasArray[gasID][4]));
		}
		else if (kn > 0) {		
			m.value = roundIt(kn * parseFloat(gasArray[gasID][5]));
			l.value = roundIt(kn * parseFloat(gasArray[gasID][6]));
		}
		else if (ln > 0) {	
			m.value = roundIt(ln * parseFloat(gasArray[gasID][7]));
			k.value = roundIt(ln * parseFloat(gasArray[gasID][8]));
		}
		else {
			alert('Prosimo, vnesite število!');
		}
		return false;
	}	
}
function setEnv() {
	if (!document.getElementById) return;
	var g = document.getElementById('gas'); 
	if(g) {
		g.onchange = function() {
			displayProperties(this.value);
			clearInputs();
		}
	}
	//	reseting values without the select
	var reset = document.getElementById('reset');
	if(reset) {
		reset.onclick = function() {
			clearInputs();
			return false;
		}
	}
}
/* init & load */
window.oninit = function() {
	if (document.getElementById && document.getElementsByTagName) {
		enhanceLinks(['switchframes']);
		setEnv();
	}
}
onload = oninit;