/*-->
	
	-root
	|
	|+data
	||
	||+js
	|||
	|||-main.js
			
	Информация:	Съдържа:
				-главният обект main с важни базови методи
	

-->*/

var main = {
	
	// sh_hide(var argument) функцията скрива и или показва елемент с id - единственият аргумент
	ShowOrHide : function(argument){
		argument = document.getElementById(argument);
		
		if(argument.style.display=="none") {
			
			argument.style.display="block";
			
		}
		else {
			
			argument.style.display="none";
			
		}
	},
	
	//показване на елемент
	Show : function(argument){
		
		argument = document.getElementById(argument);
		argument.style.display="block";
		
	},
	
	//скриване на елемент
	Hide : function(argument){ 
		
		argument = document.getElementById(argument);
		argument.style.display="none";
		
	},
	
	//кодиране на променливите пратени по xmlhttp
	AjaxEncode : function(str) { 
			
		str = str.replace(/%/g, "abv37abv");
		
		str = str.replace(/&/g, "3434vtoroto3434");
		
		return str;
	},
	
	//пренасочване на страницата
	Redirect : function(dir) { 
		
		window.location = dir;
		
	},
	
	// Настройка на прозрачност
	Opacity : function(opac, id, sh, ope) {
		var obj = document.getElementById(id).style;
		
		obj.opacity = (opac / 100); // стандарт
		
		obj.KhtmlOpacity = (opac / 100); // Konqueror
		
		obj.MozOpacity = (opac / 100); // стари версии на мозила
		
		obj.filter = "alpha(opacity=" + opac + ")"; //MSIE
		
		if(sh){
			
		  if(opac == ope){
		  	
		    base.hide(id);
		    
		  }
		  
		}
	},
	
	// показване на overflow
	OverflowOn : function(){
	
		if(navigator.appName == "Opera"){
		
			var b = document.body;
		
		}
		else {
		
			var b=(document.compatMode=="CSS1Compat")? document.documentElement : document.body;
		
		}
		b.style.overflow = "auto";
		
	},
	
	//скриване на overflow
	OverflowOff : function(){
		if(navigator.appName == "Opera"){
			
			var b = document.body;
		
		}
		else {
				
			var b=(document.compatMode=="CSS1Compat")? document.documentElement : document.body;
		
		}
		b.style.overflow = "hidden";
	},
	
	// Задаване на текст в елемент
	SetContent : function(id, content) {
		
		var element = document.getElementById(id);
		element.innerHTML = content;
		
	},
	
	LoadingText : '<img src="data/images/loading.gif" alt="loading"/><br />Зареждам...',
	
	//Настройка на позиция на елемент
	SetPosition : function(id, x, y){ 
		id = document.getElementById(id);
		id.style.top = y+"px";
		id.style.left = x+"px";
	},
	
	// позиция в тримерното пространство ;)))
	SetzIndex : function(root, z) {
	
		root = document.getElementById(root);
		
		root.style.zIndex = z;
		
	},
	
	//Взимане на резолюциите
	GetDimensions : function(){
		var H = 0;
		var W = 0;
		
		if(self.innerHeight) {
		   H = window.innerHeight;
		   W = window.innerWidth;
		} 
		else {
		    if(document.documentElement && document.documentElement.clientHeight) {
		        H = document.documentElement.clientHeight;
		        W = document.documentElement.clientWidth;
		    }
		    else {
		        if(document.body) {
		            H = document.body.clientHeight;
		            W = document.body.clientWidth;
		        }
		    }
		}
		
		return {
		    height: parseInt(H, 10),
		    width: parseInt(W, 10)
		};
	},
	
	//Центриране на елемент
	CenterElement : function(elementId) {
		
		var element = document.getElementById(elementId);
		var w = element.style.width;

		var width = parseInt(w)/2;

		var viewport = main.GetDimensions();
		var left = (viewport.width == 0) ? 50 : parseInt((viewport.width - element.offsetWidth) / 2, 10);
		var top = (viewport.height == 0) ? 50 : parseInt((viewport.height - element.offsetHeight) / 2, 10);
		left = left - width;
		
		top = top - width*1.5;
		
		main.SetPosition(elementId, left, top);
		
		viewport, left, top, element = null;   
		 
	},
	
	//Показване на прозореца с информация
	WindowShow : function(con, ok) {
		
		if(main.Parent != "pot") main.Redirect("#TopView");
		
		main.Opacity(60, "load_screen", false, false);
		main.Show("load_screen");
		main.OverflowOff();
		
		if(document.getElementById("message").style.display!='block'){
			
			main.CenterElement("message");
		
			main.Show("message");
		}
		
		if(ok) {
			
			con += "<br/><button class='button' onclick='main.WindowHide()'>OK</button>"
			
		}
		main.SetContent("mscontent", con);
		
		main.Parent = 0;
		
	},
	
	//Показване на прозореца с информация
	WindowHide : function() {
		
		main.Hide("load_screen");
		
		main.OverflowOn();
		
		main.Hide("message");

	},
	
	//Гласуване в анкетата
	PollVote : function(id) {
		
		main.WindowShow(main.LoadingText, false);
		
		main.Redirect("#");
		
		if(document.forms[1].id=="pl"+id)
			var form = document.forms[1];
		else
			var form = document.forms[2];
			
		var otg = 0;
		
		var l = form.elements['o'].length;
		
		for(i = 0; i < l; i++) {
		
			if(form.elements['o'][i].checked) {
				otg = parseInt(form.elements['o'][i].value);
			}
		
		}
		if(otg != 0) {
							
				var oXmlHttp = zXmlHttp.createRequest();
		        oXmlHttp.open("post", "poll.inc.php" , true);
		        var parameters = "id="+id+"&otg="+otg;
		        oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		        oXmlHttp.setRequestHeader("Content-length", parameters.length);
		        oXmlHttp.setRequestHeader("Connection", "close");
		        oXmlHttp.onreadystatechange = function () {
		            if (oXmlHttp.readyState == 4) {
		                if (oXmlHttp.status == 200) {
						  var t = oXmlHttp.responseText;
						  var tt = JSON.parse(t);
						  var broi = tt.broi;
						  var sbor = parseInt(tt.sbor);
						  var otgovori = tt.otgovori;
						  var vp = tt.vp;
						  var glas = tt.glas;
							if(glas == "yes") {
								main.WindowShow("<img src='data/images/tick2.jpg' alt='' class='tick'/><b class='red'>Вече сте гласували в тази анкета!</b>", true);
							}
							else {
								main.WindowShow("<img src='data/images/tick.jpg' alt='' class='tick'/><b class='green'>Успешно записан глас!</b>", true);
							}
							var ln = otgovori.length;
							var g = "";
							for(d = 0; d < ln; d++) {
								var ty = Math.round((parseInt(otgovori[d]['p'])*100)/sbor);
								ttd = 1.6*ty+20;
								g += otgovori[d]['otg']+': <br /><div style="width: '+ttd+'px; background: #666; text-align: center; color: white;border: 1px black solid;margin: 3px; font-size: 10px"><span>'+ty+'%</div><div id="pollf"></div>';
							}
							var con = document.getElementById("poll"+id);
							con.innerHTML = '<br />'+g;
		                } else {
		                    alert("An error occurred: " + oXmlHttp.statusText);
		                }
		            }            
		        };
		        oXmlHttp.send(parameters);
		}
	},
	//Информация за потребител
	UserDetails : function(username) {
		
		var oXmlHttp = zXmlHttp.createRequest();
		username = main.AjaxEncode(username);
		oXmlHttp.open("post", "user_details.inc.php" , true);
		var parameters = "username="+username;
		oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		oXmlHttp.setRequestHeader("Content-length", parameters.length);
		oXmlHttp.setRequestHeader("Connection", "close");
		oXmlHttp.onreadystatechange = function () {
		    if (oXmlHttp.readyState == 4) {
		        if (oXmlHttp.status == 200) {
				  var t = oXmlHttp.responseText;
				  var tt = JSON.parse(t);
				  var email = tt.email;
				  var name = tt.name;
				  var fam = tt.fam;
				  var rang = tt.rang;
				  var avatar = tt.avatar;
				  var signdes = tt.sign_des;
					  if(signdes == "") {
							
							var des = "";
							
					  }
					  else{
							
							var des = '<hr class="hr"><div class="sign">'+signdes+'</div><hr class="hr">';
							
					  }
					if(email == "0") {
						main.WindowShow("<img src='data/images/tick2.jpg' alt='' class='tick'/><b class='red'>Грешка! Не съществува потребител с това потребителско име!</b>", true);
					}
					else {
						main.WindowShow('<div style="text-align: center"><img style="border: 1px #000 solid; width: 80px;height: 80px;margin: 3px;" src="'+avatar+'"/></div><div style="text-align: left;margin: 5px; auto;">Псевдоним: '+username+'<br />E-mail: '+email+'<br />Име: '+name+'<br />Фамилия: '+fam+'<br />Ранг: '+rang+'</div><br />'+des+'<button class="button" onclick="main.Redirect(\'mail_new.php?user='+username+'\')">Изпрати лично съобщение</button>', true);
					}
		        } else {
		            alert("An error occurred: " + oXmlHttp.statusText);
		        }
		    }            
		};
		oXmlHttp.send(parameters);
		
	},
	ShowSubItem : function(ImageId) {
		
		var id = document.getElementById(ImageId);
			
			if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
				var ieversion=new Number(RegExp.$1)
				if (ieversion>6) {
					if(id.style.display=="inline"){
					
						id.style.display = "none";
						id.style.position = "relative";
						
					}
					else if(id.style.display=="none"){
						
						id.style.display = "inline";
						id.style.position = "absolute";
						
					}					
				}
			}
			else{
				
								
				if(id.style.display=="inline"){
					
					id.style.display = "none";
					id.style.position = "relative";
					
				}
				else if(id.style.display=="none"){
					
					id.style.display = "inline";
					id.style.position = "absolute";
					
				}
					
			}
	
	}

}