var isOpen = false;
var isOver = false;
var loaderimg = new Image();
loaderimg.src = '/images/wait_bar.gif';



function clearSpaces(t) {
	if (t) return t.replace(/^\s+/g, '').replace(/\s+$/g, '').replace(/&nbsp;/g, '');
	else return '';
}

function getElById(id) {
	var tere = (typeof(id) == 'object'?id:document.getElementById(id));
	return (tere?tere:false);
}

function insert_bbcode(el,v){
	try {
		if (document.selection){
			var str = document.selection.createRange().text;
			var sel = document.selection.createRange();			
			sel.text = "[" + v + "]" + str + "[/" + v + "]";
			if (str.length>0) sel.moveStart("character",-(parseInt(str.length)+(3 + parseInt(v.length))));
			sel.moveEnd("character",-(3 + parseInt(v.length)));
			sel.select();
			el.focus();
			return;
		}
		else if (typeof(el.selectionStart) != 'undefined') {			
			var txtarea = el;
			var selLength = txtarea.textLength;
			var selStart = txtarea.selectionStart;
			var selEnd = txtarea.selectionEnd;
			var s1 = (txtarea.value).substring(0,selStart);
			var s2 = (txtarea.value).substring(selStart, selEnd)
			var s3 = (txtarea.value).substring(selEnd, selLength);
			txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
			txtarea.selectionStart = (s1.length + 2 + v.length);
			txtarea.selectionEnd = s1.length + 2 + v.length + s2.length;
			return;
		}
		else { }
	}
	catch(e){
	}
}

var ble =1;
function makeLoader() {
	if (!document.getElementById('loaders')) {
		var t = loaderimg; t.id = 'loaders';
		document.body.appendChild(t);
		return t;
	}
	else return document.getElementById('loaders');	
}
function posStuff(m) {
	if (isOpen) {
		if (m=='r') var t = makeLoader();

		if (document.getElementById('temp')) document.getElementById('temp').parentNode.removeChild(document.getElementById('temp'));
		var div = document.createElement('div');

		//var scrollxy = getScrollXY();
		
		div.style.position="absolute";
		div.style.zIndex=5;
		div.className="bodyfade";
		setOpacity(div,60);	
	
		var pageStuff = getPageSize();			
	
		div.style.left=0;
		div.style.top=0;
		div.style.height=pageStuff[1]+'px';
		div.style.width=pageStuff[0]+'px';

		div.id = 'temp'

		document.getElementsByTagName('body')[0].appendChild(div);		


		if (navigator.appVersion.indexOf('MSIE 6.') != -1) {			
			// IE script to cover <select> elements with <iframe>s
			var ieMat=document.createElement('iframe');
			if(document.location.protocol == "https:")
				ieMat.src="//0";
			else if(window.opera != "undefined")
				ieMat.src="";
			else
				ieMat.src="javascript:false";
			ieMat.scrolling="no";
			ieMat.frameBorder="0";
			ieMat.style.width=div.offsetWidth+"px";
			ieMat.style.height=div.offsetHeight+"px";
			setOpacity(ieMat,0);
			//ieMat.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
			div.appendChild(ieMat);		
		}

		if (t) posMain(t.id);
		posMain();
	}
}

function posMain(w,X,Y) {
	if (w==undefined) var c = document.getElementById('container');
	else var c = document.getElementById(w);
	var pageStuff = getPageSize();	
	var scrollxy = getScrollXY();
//	var centW = Math.floor(pageStuff[0]/2);
//	var centH = Math.floor(pageStuff[1]/2);
	var midH = Math.floor(pageStuff[3]/2+scrollxy[1]);
	var midW = Math.floor(pageStuff[2]/2+scrollxy[0]);	
	
	var cW = Math.floor(c.offsetWidth/2);
	var cH = Math.floor(c.offsetHeight/2);
	var posX = midW-cW;
	var posY = midH-cH;
	if (posX < 0) posX = 0;
	if (posY < 0) posY = 0;
	
	c.style.left = (X==undefined?posX:X)+'px';
	c.style.top = (Y==undefined?posY:Y)+'px';

}

addEvent(window,'resize',posStuff);

function getPageSize(){
	
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


function getElement(e) {
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	return tg;
}

function getElemSize(e) {
	var w = e.offsetWidth;
	var h = e.offsetHeight;
	
	return new Array(w,h);
}

function addEvent(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
};

function removeEvent(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
};

function getMouseXY(e,panull) {
	var tempX = 0;
	var tempY = 0;
	var scrollxy = getScrollXY();
 
	if (!e) var e = window.event;
	if (e.clientX || e.clientY) {
		tempX = e.clientX + scrollxy[0];
		tempY = e.clientY + scrollxy[1];
	} else if (e.pageX || e.pageY) {
		tempX = e.pageX;
		tempY = e.pageY;
	}
	if (panull==undefined) {
		if (tempX < 0){tempX = 0}
		if (tempY < 0){tempY = 0}
	}
	
	return [ tempX, tempY ];
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function findPosXY(obj)
{
	var curleft = 0;
	var curtop = 0;	
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop	
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) {
		curleft += obj.x;
		curtop += obj.y;
	}
	var res = new Array(curleft,curtop);
	return res;
}
var isDrag = false;
var drx,dry;
var dobj;
function startDrag(e,w) {
	if (!e) e = window.event;
	var mXY = getMouseXY(e);
	var scrollxy = getScrollXY();
	if (!isDrag) {
		dobj = document.getElementById(w);
		setOpacity(dobj,70);
		addEvent(document,'mousemove',startDrag);
		addEvent(document,'mouseup',endDrag);
		isDrag = true;		
		var el = dobj;
		var oXY = findPosXY(dobj);
		drx = mXY[0] - oXY[0];
		dry = mXY[1] - oXY[1];
		
	}
	else {
		var newLeft = mXY[0] - drx;
		var newTop = mXY[1] - dry;
		if (newLeft > (winWidth()-dobj.offsetWidth+scrollxy[0])) newLeft = winWidth()-dobj.offsetWidth+scrollxy[0];
		if (newTop > (winHeight()-dobj.offsetHeight+scrollxy[1])) newTop = winHeight()-dobj.offsetHeight+scrollxy[1];
		if (newLeft < scrollxy[0]) newLeft = scrollxy[0];
		if (newTop < scrollxy[1]) newTop = scrollxy[1];
		dobj.style.left = newLeft+'px';
		dobj.style.top = newTop+'px';
		// noņemam selectus
        document.body.focus();
		return false;
	}
}	
function endDrag() {
	removeEvent(document,'mousemove',startDrag);
	removeEvent(document,'mouseup',endDrag);
	setOpacity(dobj,100);
	isDrag=false;
}
function winHeight() {
	return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
}
function winWidth() {
	return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
}
function posLeft() {
	return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
}
		
function posTop() {
	return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}


function setOpacity(obj, opacity)
 {
        // IE filter opacity:
        obj.style.filter = "alpha(opacity:" + opacity + ")";
        // Safari and Konqueror:
        obj.style.KHTMLOpacity = opacity / 100;
        // Old Mozilla and Firefox:
        obj.style.MozOpacity = opacity / 100;
        // CSS3 opacity for browsers that support it:
        obj.style.opacity = opacity / 100;
		obj.opac = parseInt(opacity);		
}

function resetLines(t,n,l,m) {
	// t - tabulas nosaukums, n - numerācija vai 'nohighlight', l - norāda, kurā šūnā likt numerāciju, un m - cik rindas pēc kārtas iekrāsot
	t = document.getElementById(t);
	if (t == undefined) return false;
	if (l == null) l = 1;
	if (m==null) m = 1;
	rows = t.rows;
	var num=0;
	for (i=0; i<rows.length;i++) {
		if (rows[i].id == 'heder') {
		 	num = 0;
			continue;
		 }
		 trr = rows[i];
		 if ((trr.id).substr(0,6) == 'tmprow') num--;
		 else var lastRow = trr.id;
		 trr.className = num%(2*(m))<m?'lineOne':'lineTwo';
		if (n != 'nohighlight') {
			 var mo = new Function('document.getElementById(\''+trr.id+'\').className="highlight";'+(trr.id!=lastRow?'document.getElementById(\''+lastRow+'\').className="highlight"':''));
			 var mt = new Function('document.getElementById(\''+trr.id+'\').className="'+ (num%2==0?'lineOne':'lineTwo') +'"; '+(trr.id!=lastRow?'document.getElementById(\''+lastRow+'\').className="'+ (num%2==0?'lineOne':'lineTwo') +'"':''));
			 trr.onmouseover = mo;
			 trr.onmouseout = mt;
			 if (trr.id != lastRow) {
				var lr = document.getElementById(lastRow);
				lr.onmouseover = mo;
				lr.onmouseout = mt;
			 }
			if(n) trr.cells[l].innerHTML = (num+1)+'.';
		}
		 num++;
	}
}

function galotne(w,t,vsk,dsk,n) {
	w = w+'';
	var ga = w.substring(w.length-1);
	var ga2 = w.substring(w.length-2);
	if (ga2=='11' || ga!='1') return((!n?w+' ':'')+t+dsk);
	else return((!n?w+' ':'')+t+vsk);
}

// Personas koda validācijas kods paņemts no http://home.lanet.lv/~sd10104/tt1/md7.html Autors: Mārtiņš Možeiko	
function checkpk(pk) {
	var datums0128 = "([012][1-8]|[01]9|[12]0)(0\\d|1[012])\\d{2}";
	var datums3031 = "3(0(0[13-9]|1[012])|1(0[13578]|1[02]))\\d{2}";
	var datums29 = "29(02([02468][048]|[13579][26])|(0[13-9]|1[012])\\d{2})";
	var reg = new RegExp("^((" + datums0128 + ")|(" + datums3031 + ")|(" + datums29 + "))-[12]\\d{4}$");
	if (reg.test(pk)) {
		var chksum = 1*pk.charAt(0)+6*pk.charAt(1)+3*pk.charAt(2)+7*pk.charAt(3)+9*pk.charAt(4)+10*pk.charAt(5)+5*pk.charAt(7)+8*pk.charAt(8)+4*pk.charAt(9)+2*pk.charAt(10);
		if ((1101 - chksum)%11 == 1*pk.charAt(11)) return true;
		else return false;
	}
	else return false;
}
/////////////

function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) { 
//Generic Animation Step Value Generator By www.hesido.com 
	var delta = maxValue - minValue; 
	var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
	return Math.ceil(stepp) 
} 

function openClose(el,t,force) {
	el = document.getElementById(el);
	if (el) {
		var opcl = false;
		if (el.getAttribute('showhide')) opcl = true;
		//document.title=opcl;
		el.style.display = force?force: opcl?'none':'block';
		t.style.backgroundImage = 'url(/images/collapse'+(force? force=='none'?'_c':'' : opcl?'_c':'')+'.gif)';		
		if ((opcl && force == undefined) || force == 'none') el.removeAttribute('showhide');
		else if ((!opcl && force == undefined) || force == 'block') {
			el.setAttribute('showhide','true');
			scrollat(el,'b');
		}
	}
}

function isin_array(arr, val) {
	for (var i = 0; i < arr.length; i++ ) {
		if (arr[i]==val) return true;
	}
	return false;
}

function scrollat(el,side) {
	var el = getElById(el);
	if (el && window.scrollTo) {
		var obj = findPosXY(el);
		var size = getElemSize(el);
		var ps = getPageSize();
		var to;
		switch (side) {
			case 'b':
				to = obj[1] + size[1] - ps[3];
				break;
			case 't':
				to = obj[1] - ps[3];
				break;
			case 'm':
				to = Math.floor(obj[1] + size[1] / 2) - ps[3];
				break;			
		}
		to = to + 5;
		var sc = getScrollXY();
		if (sc[1] > to) return;
		window.scrollTo(0,to);
		var sc = getScrollXY();		
		if (sc[1] > obj[1]) {
			to = obj[1];
			window.scrollTo(0,to);
		}
	}
}

function blinkBack(el,col,bg,stay) {
	if (el) {
		if (col == undefined) col = '#FEFBC0';
		if (bg == undefined) bg = '';
		if (el.blinkMemTim) window.clearTimeout(el.blinkMemTim);
		if (el.blinkMemInt) window.clearInterval(el.blinkMemInt);
		var blstep = 1;
		el.blinkMemInt = window.setInterval(
			function () {
				//document.title=blstep;
				if ((blstep%2)==1) el.style.backgroundColor=col;
				else el.style.backgroundColor=bg;
				blstep++;
				if (blstep > 7) {
					window.clearInterval(el.blinkMemInt);
					if (stay == undefined) el.blinkMemTim = window.setTimeout(function() { el.style.backgroundColor=bg; },7000);
				}
			},
		150);
	}
}

