
PageClass={};
PageClass.location = '';
PageClass.areas = Array;
PageClass.CONFIG_URL = '';
PageClass.requestMethod = 'GET';
PageClass.postParams = null;
PageClass.loadingHTML = '<center><img src="images/loading.gif" alt="" /></center>';



var POST = false;
var INFO_AREA = document.getElementById('content_area');
var INFO_AREA_CONTENT = document.getElementById('content_info');

PageClass.init = function() {
	
	PageClass.procesLinks(document);
		
}

PageClass.procesLinks = function(obj) {
	
	var arr = obj.getElementsByTagName('a');
	for(var i=0; i<arr.length; i++){
		if(arr[i].target != '_blank' && arr[i].className != 'lng' && arr[i].className != 'lng_a' && arr[i].className != 'logo' && arr[i].href.substr(0,6)!='mailto' && arr[i].href.substr(0,10)!='javascript') {
			tmp_href = arr[i].href;
			arr[i].href = "javascript: void(PageClass.getPageContent('" + arr[i].href + "', '" + arr[i].className + "'));";
			arr[i].onmouseover = function(){
				window.status=tmp_href; return true;			
			}
			arr[i].onmouseout = function(){
				window.status=''; return true;			
			}
		}
	}
	/*
	var arr = obj.getElementsByTagName('form');
	for(var i=0; i<arr.length; i++){
		if(arr[i].target != '_blank' && arr[i].className !='') {
			arr[i].action = "javascript: void(PageClass.getPageContent('" + arr[i].action + "', '" + arr[i].className + "'));";
		}
	}*/
	
}

PageClass.getPageContent = function(location, areas){

	PageClass.location = location;
	PageClass.areas = areas.split(' ');
	
	PageClass.startRequest();
	
}

PageClass.loadPageContent = function(){

	url = PageClass.location + '?ajax=1';
//alert(PageClass.postParams + ' ' + PageClass.requestMethod);
	 if (window.XMLHttpRequest) {
	     req = new XMLHttpRequest();
	     req.onreadystatechange = PageClass.processLoadPage;
	     req.open(PageClass.requestMethod, url, true);
		 if(PageClass.requestMethod == 'POST'){
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", PageClass.postParams.length);
			req.setRequestHeader("Connection", "close");	     
		 }
	     req.send(PageClass.postParams);
	 } else if (window.ActiveXObject) {
	     isIE = true;
	     req = new ActiveXObject("Microsoft.XMLHTTP");
	     if (req) {
	         req.onreadystatechange = PageClass.processLoadPage;
	         req.open(PageClass.requestMethod, url, true);
			 if(PageClass.requestMethod == 'POST'){
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				req.setRequestHeader("Content-length", PageClass.postParams.length);
				req.setRequestHeader("Connection", "close");	     
			 }
	         req.send(PageClass.postParams);
	     }
	 }	

	PageClass.requestMethod = 'GET';
	PageClass.postParams = null;

}


PageClass.formData2QueryString = function(docForm) {

        var strSubmit       = '';
        var formElem;
        var strLastElemName = '';
        
        for (i = 0; i < docForm.elements.length; i++) {
                formElem = docForm.elements[i];
                switch (formElem.type) {
                        // Text, select, hidden, password, textarea elements
                        case 'text':
                        case 'hidden':
                        case 'password':
                        case 'textarea':
							strSubmit += formElem.name + '=' + formElem.value + '&';
                        break;
                        case 'select-one':
                        	strSubmit += formElem.name + '=' + escape(formElem.options[formElem.selectedIndex].value) + '&';
                        break;
                        case 'checkbox':
                        	if(formElem.checked == true) strSubmit += formElem.name + '=' + escape(formElem.value) + '&';
                        break;
                        case 'radio':
	                        if(formElem.checked == true) strSubmit += formElem.name + '=' + escape(formElem.value) + '&';
                }
        }
        return strSubmit;
}

PageClass.submitForm = function (location, areas, form){
	
	PageClass.postParams = PageClass.formData2QueryString(form);
	PageClass.requestMethod = 'POST';
	POST = true;
	PageClass.getPageContent(location, areas);
	//PageClass.requestMethod = 'GET';
	//PageClass.postParams = null;
	
}

PageClass.showTopBar = function (location, areas, id, obj){
	
	$(id).style.display = 'block';
	var arr = findPos(obj);
	$(id).style.left = arr[0] - 250 + 10 + 'px';
	$(id).style.top = arr[1] + 25 + 'px';
	
	PageClass.getPageContent(location, areas);
	
}

PageClass.closeTopBar = function (id){
	$(id).style.display = 'none';
}

PageClass.processLoadPage = function (){
	
	 if (req.readyState == 4) {
	     if (req.status == 200) {
	
			var html_arr = req.responseText.split(':::::::::::::::');

			/*for(i=0; i<PageClass.areas.length; i++){
				//document.getElementById(PageClass.areas[i]).innerHTML = html_arr[i];
				//PageClass.rewriteLinks($(PageClass.areas[i]));
				evalScripts(html_arr[i]);
			}*/
			
			document.getElementById('content_title').innerHTML = html_arr[0];
			document.getElementById('content_info').innerHTML = html_arr[1];
			
			evalScripts(html_arr[1]);
			PageClass.init();
			
			PageClass.endRequest();
			
	      } else {

	         alert("Serverio klaida:\n" + req.statusText);
	         PageClass.endRequest();

	      }
	 }	
	
}


PageClass.startRequest = function (){
	/*$('PAGE_overlay').style.display = 'block';
	window.scrollTo(0,0);
	try{
		document.getElementsByTagName("html")[0].style.overflow = "hidden";
	}catch(e){}*/

	document.getElementById('content_info').innerHTML = PageClass.loadingHTML;
	
	if(INFO_AREA.style.display!='block'){
		openInfoArea(1);
	}else{
		PageClass.loadPageContent();
	}
	
}

PageClass.endRequest = function (){
	/*$('PAGE_overlay').style.display = 'none';
	try{
		document.getElementsByTagName("html")[0].style.overflow = "";
	}catch(e){}*/
}

PageClass.init();


function evalScripts(html){

	var script_fragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
	//replace(/<\/?[^>]+>/gi, '');
	var re = new RegExp(script_fragment, "g");
	var scripts = html.match(re);
	if(scripts){
		for(var i=0; i<scripts.length; i++){
			eval(scripts[i].replace(/<\/?[^>]+>/gi, ''));
		}
	}
	
}

//var step = 20;
//var maxH = parseInt(document.documentElement.clientHeight)-150;

var speed = 20;

function openInfoArea(ajax){
	
	maxH = parseInt(document.documentElement.clientHeight)-150;
	step = parseInt(maxH/speed);

	INFO_AREA.style.display = 'block';
	if(parseInt(INFO_AREA.style.height) < maxH){
		height = parseInt(INFO_AREA.style.height) + step;
		INFO_AREA.style.height = (height>maxH?maxH:height) + 'px';
		setTimeout("openInfoArea("+ajax+")", 3);
	}else{
		INFO_AREA_CONTENT.style.height = parseInt(INFO_AREA.style.height) - 100 + 'px';
		document.getElementById('content_title').style.display = 'block';
		if(ajax==1) PageClass.loadPageContent();
	}
	
	
}

function closeInfoArea(){

	maxH = parseInt(document.documentElement.clientHeight)-150;
	step = parseInt(maxH/speed);
	
	document.getElementById('content_title').style.display = 'none';
	if(parseInt(INFO_AREA.style.height) > 0){
		num = parseInt(INFO_AREA.style.height) - step;
		INFO_AREA.style.height = (num<0?0:num) + 'px';
		num = parseInt(INFO_AREA_CONTENT.style.height) - step;
		INFO_AREA_CONTENT.style.height = (num<0?0:num) + 'px';
		setTimeout("closeInfoArea()", 3);
	}else{
		INFO_AREA.style.display = 'none';
	}
	
}
