/**
*	MAIN JAVASCRIPT FOR SITE
*/

/////////////////////////////////////////

var BrowserDetect = {
        init: function () {
                this.id = '';
		this.browser = this.searchString(this.dataBrowser, true) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
		this.DHTML = this.testActions();
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1){
					if(arguments[1]){
						this.id = data[i].id || '';
					}
                                        return data[i].identity;
				}
                        }
                        else if (dataProp){
				if(arguments[1]){
					this.id = data[i].id || '';
				}
                                return data[i].identity;
			}
                }
		return null;//prideta eilute
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return null;// prideta null
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
	testActions: function(){
		var actions=new Array('document.getElementById', 'document.getElementsByTagName');
		for(var i=0; i<actions.length; i++){
			if(!eval(actions[i])){
				return false;
			}
		}
		return true;
	},
        dataBrowser: [
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb",
			id: 'ow'
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari",
			id: 'sf'
                },
                {
                        prop: window.opera,
                        identity: "Opera",
			id: 'op'
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab",
			id: 'ic'
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror",
			id: 'kq'
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox",
			id: 'fx'
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino",
			id: 'ca'
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape",
			id: 'ns'
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE",
			id: 'ie'
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv",
			id: 'gc'
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla",
			id: 'mz'
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};
BrowserDetect.init();

/////////////////////////////////////////
/*
//cia tik siam sablonui
*/
function calcOffset(){
	if(document.getElementById('page') && document.getElementById('menu')){
		var left=document.getElementById('page').offsetLeft;
		var w = document.getElementById('page').offsetWidth
		for(var i=0; i<document.getElementById('menu').childNodes.length; i++){
			var obj=document.getElementById('menu').childNodes[i];
			if(obj.tagName && obj.tagName == 'LI'){
				var divs=document.getElementById('menu').childNodes[i].getElementsByTagName('div')[0];
				if(divs.className == '' || divs.className == 'inactive'){
					divs.style.left=left+'px';
					divs.style.width=w+'px';
					divs.className = '';
					if(BrowserDetect.id == 'ie' && BrowserDetect.version < 7){
						divs.style.top='199px';
					}
				}
			}
		}
	}
}
/////////////////////////////////////////

function insertAfter(newElement, reference){
	if(reference.nextSibling){
		reference.parentNode.insertBefore(newElement,reference.nextSibling);
	}
	else{
		reference.parentNode.appendChild(newElement);
	}
}

function loadDefault(){
	var curl = getUrl();
	if(!(/[0-9a-z]/.test(curl)) && default_url){
		setUrl(default_url);
	}
	loadPageByUrl();
}

function loadPage(url){
	setUrl(url);
	loadPageByUrl();
}


var pageContentId = 'content';
var loaderId = "loader";
var pageTitleId = 'page_title';
function initPage(){
	calcOffset();//cia tik siam sablonui
	if(document.getElementById(pageContentId)){
		contentObj = document.getElementById(pageContentId);
		var div = null;
		div = insertIntoRel(contentObj);
		if(document.getElementById(loaderId)){
			pageloader = document.getElementById(loaderId);
			if(div)
			{
				setLoader(div);
			}
		}
		
	}
}

function loadPageByUrl(){
	var curl = getUrl();
	if(/[0-9a-z]/.test(curl)){
		loadContent(curl);
	}
}

function setUrl(url){
	location.hash = url;
}

function getUrl(){
	return location.hash.replace(/^\#/, '');
}

var contentRequest=null;
var contentObj=null;
var activMenuObj = null;
var pageloader;
function loadContent(url){
	if(contentRequest && arguments[1]){
		requestAbort(contentRequest);
	}
	if(!contentRequest && contentObj){
		viewLoader();
		var div = hideOldContent();
		contentRequest=execRequest(root_url+url, 'setContent', div);
		//contentRequest=execRequest(root_url+url);
		//var xmldoc = contentRequest.responseXML.documentElement;
		//contentObj.innerHTML = _getXmlValue(xmldoc, 'innerTemplate');
	}
}

function insertIntoRel(obj)
{
	var div = document.createElement("DIV");
	div.style.position = "relative";
	div.style.overflow = "hidden";
	div.style.height = "300px";
	insertAfter(div, obj);
	div.appendChild(obj);
	return div;
}

function hideOldContent()
{
	var div = document.createElement("DIV");
	div.setAttribute("id", pageContentId);
	div.className = "content";
	$(div).css("opacity", "0");
	contentObj.id = "";
	$(contentObj).animate({opacity:0}, {duration:"normal"});
	return div;
}

function showNewContent(obj)
{
	obj.style.position = "absolute";
	insertAfter(obj, contentObj);
	$(contentObj.parentNode).animate({height:$(obj).outerHeight()},{duration:"normal", complete:function(){
		contentObj.parentNode.removeChild(contentObj);
		contentObj = obj;	
		$(obj).stop(1).animate({opacity:1}, {duration:"normal"});
		obj.style.position = "static";
	}});
}

function setLoader(obj){
	obj.appendChild(pageloader);
	pageloader.style.position = "absolute";
	$(pageloader).css("opacity", "0");
}

function viewLoader()
{
	$(pageloader).css("top", (($(contentObj).outerHeight() - $(pageloader).outerHeight())/2));
	$(pageloader).css("left", (($(contentObj).innerWidth() - $(pageloader).innerWidth())/2));
	$(pageloader).stop(1).animate({"opacity": "1"}, {duration:"normal"});
}

function hideLoader()
{
	$(pageloader).stop(1).animate({"opacity": "0"}, {duration:"normal"});
}

function setContent(resp, obj){
	var xmldoc = resp.responseXML.documentElement;
	obj.innerHTML = _getXmlValue(xmldoc, 'innerTemplate');
	contentRequest = null;
	repairAjaxLinks(obj);
	if(document.getElementById(pageTitleId)){
		document.getElementById(pageTitleId).innerHTML = _getXmlValue(xmldoc, 'title');;
	}
	var nodeI = new nodeInfo(xmldoc);
	showNewContent(obj);
	hideLoader();
	onloadContent(xmldoc);
	if(activMenuObj){
		activMenuObj.className = '';
		activMenuObj.onmouseout = function(){this.className = '';};
		activMenuObj = null;
	}
	if(document.getElementById('m'+nodeI.topid)){
		activMenuObj = new Object();
		activMenuObj = document.getElementById('m'+nodeI.topid);
		activMenuObj.className = 'vact';
		activMenuObj.onmouseout = function(){this.className = 'vact';};
	}
	
}

function _getXmlValue(obj, tag){
	return ((obj.getElementsByTagName(tag).length > 0)? obj.getElementsByTagName(tag)[0].childNodes[0].nodeValue :'');
}

function nodeInfo(obj){
	if(obj.getElementsByTagName('nodeinfo').length == 1){
		for(var i=0; i<obj.getElementsByTagName('nodeinfo')[0].childNodes.length; i++){
			this[obj.getElementsByTagName('nodeinfo')[0].childNodes[i].nodeName] = obj.getElementsByTagName('nodeinfo')[0].childNodes[i].childNodes[0].nodeValue;
		}
	}
}

function onloadContent(obj){
	if(obj.getElementsByTagName('onload').length > 0){
		eval(_getXmlValue(obj, 'onload'));
	}
}

function repairAjaxLinks(obj){
	if(obj){
		var ael = obj.getElementsByTagName('a');
		if(ael.length > 0){
			var re = new RegExp('^('+repair_path+repair_app+')?([^#]+)?'+repair_ext+'$', "gi");
			for(var i in ael){
				if(typeof(ael[i].href) != 'undefined' && re.test(ael[i].href)){
					ael[i].href = "javascript:loadPage('"+ael[i].href.replace(re, '#$4')+"."+site_ext+"');";
				}
			}
		}
	}
}
////////////////////////////////
function submitThis(th)
{
	th.submit();
}

function sendForm(url)
{
        $.post(url, $("#sendform").serialize(), function(data)
	{
		$("#send_form").fadeOut("fast", function()
		{
			$("#send_form").html(data);
			$("#send_form").fadeIn("normal");
		});
	});
}

function animateTitle5(th)
{
	$(".title5 .album").stop(1).animate({opacity: 0.3}, {duration: "slow"});
	$(th).stop(1).css("opacity","1");
	$(".title5").mouseout(function(){
			$(".title5 .album").stop(1).animate({opacity: 1}, {duration: "slow"});
	});
}

function animateGallery2Album(th)
{
	$(th.parentNode.parentNode.parentNode).find("img").stop(1).animate({opacity: 0.3}, {duration: "slow"});
	$(th).stop(1).css("opacity","1");
	$(th).mouseout(function(){
			$(th.parentNode.parentNode.parentNode).find("img").stop(1).animate({opacity: 1}, {duration: "slow"});
	});
}

