var caminho_img = "/dev/arturai/miscode_box/templates/";

 var http_request = false;
function load_info(url, destino, nome, w, h, iframe) 
{
     if(iframe)
	 {		 
		content_box_iframe(destino, nome, w, h, url);
	 }
	 else
	 {
		 http_request = false;
		  if (window.XMLHttpRequest) 
		  { // Mozilla, Safari,...
			 http_request = new XMLHttpRequest();
			 if (http_request.overrideMimeType) http_request.overrideMimeType('text/html; charset=utf-8');
		  } else if (window.ActiveXObject) { // IE
			 try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  }
		  if (!http_request) 
		  {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  pr="";
		  if(substr_count (url, "?")) pr = "&";
		  else pr="?";
		  http_request.onreadystatechange = function(){ content_box_innerhtml(destino, nome, w, h, iframe) };
		  http_request.open('GET', url+pr+"nome_form="+nome, true);
		  http_request.send(null);
	 }
}



function makeRequest(url, destino, nome, iframe)
{     
	
	//alert(url)
	var nome2 = str_replace("info_","",nome);
	if(document.getElementById('loading_'+nome2))
	{
		document.getElementById('loading_'+nome2).style.display = "block"; 
		showdeadcenterdiv(200,66,"loading_"+nome2,130);
	}
	 if(document.getElementById('botoes_script_'+nome2))
	 {
		//botoes_ret = devolve_botoes(nome2, "{close}");
		div = '';		
		div += "<img src='"+caminho_img+"loading2.gif' align='absmiddle'>&nbsp;&nbsp;";		
		div += '';
		document.getElementById('botoes_script_'+nome2).innerHTML = div;
	 }
	 if(iframe)
	 {
		content_box_iframe(destino, nome, w, h, url);
	 }
	 else
	 {
		 
		 http_request = false;
		  if (window.XMLHttpRequest)
		  { // Mozilla, Safari,...
			 http_request = new XMLHttpRequest();
			 if (http_request.overrideMimeType) http_request.overrideMimeType('text/html; charset=utf-8');
		  } else if (window.ActiveXObject) { // IE
		  //http_request.overrideMimeType("text/html; charset=utf-8"); 
			 try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  }
		  if (!http_request)
		  {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  pr="";
		  if(substr_count (url, "?")) pr = "&";
		  else pr="?";
		  http_request.onreadystatechange = function(){ content_box_script(destino, nome, iframe) };
		  http_request.open('GET', url+pr+"nome_form="+nome, true);	
		 // window.open(url+pr+"nome_form="+nome);
		  http_request.send(null);
	 }
}

function makeRequest_for_box(url, destino, nome, iframe)
{     
	var nome2 = str_replace("info_","",nome);
	if(document.getElementById('loading_'+nome2))
	{
		document.getElementById('loading_'+nome2).style.display = "block"; 
		showdeadcenterdiv(200,66,"loading_"+nome2,130);
	}
	 /*if(document.getElementById('botoes_script_'+nome2))
	 {
		//botoes_ret = devolve_botoes(nome2, "{close}");
		div = '';		
		div += "<img src='"+caminho_img+"loading2.gif' align='absmiddle'>&nbsp;&nbsp;";		
		div += '';
		document.getElementById('botoes_script_'+nome2).innerHTML = div;
	 }*/
	 if(iframe)
	 {
		content_box_iframe(destino, nome, w, h, url);
	 }
	 else
	 {
		 
		 http_request = false;
		  if (window.XMLHttpRequest)
		  { // Mozilla, Safari,...
			 http_request = new XMLHttpRequest();
			 if (http_request.overrideMimeType) http_request.overrideMimeType('text/html; charset=utf-8');
		  } else if (window.ActiveXObject) { // IE
			 try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  }
		  if (!http_request)
		  {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  pr="";
		  if(substr_count (url, "?")) pr = "&";
		  else pr="?";
		  http_request.onreadystatechange = function(){ content_box_script(destino, nome, iframe) };
		 // http_request.setRequestHeader("Content-type", "multipart/form-data");
		  http_request.open('GET', url+pr+"nome_form="+nome, true);		  
		  http_request.send(null);
	 }
}

function content_box_script(destino, nome, iframe)
{
	if (http_request.readyState == 4)
	{
		if (http_request.status == 200)
		{
			result = http_request.responseText;

			if(document.getElementById(nome))
			{
				document.getElementById(nome).innerHTML = result;
				extraiScript(result);
			}

			var nome2 = str_replace("info_","",nome);
			if(document.getElementById('loading_'+nome2))
			{
				var t=setTimeout(function()
				{
					if(document.getElementById('botoes_script_'+nome2))
					 {
						botoes_ret = devolve_botoes(nome2, "{close}");
						div = '<div style="padding:2px; float:left">';		
						div += botoes_ret;		
						div += '</div>';
						document.getElementById('botoes_script_'+nome2).innerHTML = div;
					 }
					
					document.getElementById('loading_'+nome2).style.display = "none";
				},500);
			}

		} else alert('Ficheiro não existe!!');
	}
}

function criaBotoesDinamicos(nome, botoes_str)
{
	//alert(nome+', '+botoes_str);
   // var nome2 = str_replace("info_","",nome);
    var t=setTimeout(function()
	{
	     if(document.getElementById('botoes_script_'+nome))
		 {
			//botoes_ret = devolve_botoes(nome2, "{close}");
			botoes_ret = devolve_botoes(nome, botoes_str);
			div = '<div style="padding:2px; float:left">';
			div += botoes_ret;
			div += '</div>';
			document.getElementById('botoes_script_'+nome).innerHTML = div;
		 }
	 },1000);
}
   
function content_box_innerhtml(destino, nome, w, h, iframe) 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			
			result = http_request.responseText;
			
			var tmh;
			if(typeof sizethis == 'function') tmh = sizethis();
			if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.display = "block";		
			if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.width = tmh[0]+"px";
			if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.height = tmh[1]+"px";
			
								
			
			if(document.getElementById(destino))
			{  
				document.getElementById(destino).innerHTML = result;
				extraiScript(result);
			}
			
	
			if(document.getElementById('loading_'+nome))
			{
				var t=setTimeout(function()
				{
					document.getElementById('loading_'+nome).style.display = "none";
					if(document.getElementById("msg_"+nome)) document.getElementById("msg_"+nome).style.display = "block";	
					if(document.getElementById("msg_"+nome)) showdeadcenterdiv(w,h,"msg_"+nome);
				},500);
			}
			
		} else alert('Ficheiro não existe!!');
	}	
}

function content_box_iframe(destino, nome, w, h, result) 
{
	var tmh;
	if(typeof sizethis == 'function') tmh = sizethis();
	if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.display = "block";		
	if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.width = tmh[0]+"px";
	if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.height = tmh[1]+"px";
	
	if(document.getElementById("msg_"+nome)) document.getElementById("msg_"+nome).style.display = "block";	
	if(document.getElementById("msg_"+nome)) showdeadcenterdiv(w,h,"msg_"+nome);						
	
	if(document.getElementById(destino))  document.getElementById(destino).src = result;

	if(document.getElementById('loading_'+nome))
	{
		var t=setTimeout(function(){document.getElementById('loading_'+nome).style.display = "none";},500);
	}	
}

function extraiScript(texto)
{
	var ini = 0;
	while (ini!=-1)
	{
		ini = texto.indexOf('<script', ini);
		if (ini >=0)
		{
			ini = texto.indexOf('>', ini) + 1;
			var fim = texto.indexOf('</script>', ini);
			codigo = texto.substring(ini,fim);
			novo = document.createElement("script")
			novo.text = codigo;
			document.body.appendChild(novo);
		}
	}
}

function executa_script(frm, script)
{

	nome=frm;
	frm = document.getElementById(frm);
	
	if(substr_count (script, "?")) var getstr = "&";
	else var getstr = "?";
	
	var getobr = "";
	
	if(!frm || !frm.elements) {return;}
	var elms = frm.elements;
	for(var i = 0, maxI = elms.length; i < maxI; ++i) 
	{	
		var elm = elms[i];	

		if (elm.type == "checkbox") 
		{		
			if (elm.checked)
			{
				getstr += elm.name + "=" + elm.value + "&";			
			}
		}
		
		if (elm.type == "text") 
		{		
			if (elm.value && elm.className=="inputtext_obr")
			{ 
				getstr += elm.name + "=" + elm.value + "&";
			}
			else if (elm.value=="" && elm.className=="inputtext_obr")
			{
				if(getobr) getobr += ", "+elm.name;
				else  getobr += elm.name;
			}
			else
			{
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "password") 
		{		
			if (elm.value && elm.className=="inputtext_obr")
			{ 
				getstr += elm.name + "=" + elm.value + "&";
			}
			else if (elm.value=="" && elm.className=="inputtext_obr")
			{
				if(getobr) getobr += ", "+elm.name;
				else  getobr += elm.name;
			}
			else
			{
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "hidden") 
		{		
			if (elm.value)
			{
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "radio") 
		{		
			if (elm.checked)
			{ 
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "file") 
		{		
				getstr += elm.name + "=" + elm.value + "&";
		}
	}
	//alert(script+getstr); //return;
	if(getobr)  alert(campo_obrigatorios);
	else
	{
		 makeRequest(script+getstr, getstr, 'info_'+nome, 0);
	}
}

function sizethis() 
{	        
	var xScroll, yScroll;	
	if (window.innerHeight && window.scrollMaxY) 
	{	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} 
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} 
	else 
	{
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}	
	var windowWidth, windowHeight;	
	if (self.innerHeight) 
	{
		if(document.documentElement.clientWidth) windowWidth = document.documentElement.clientWidth; 
		else  windowWidth = self.innerWidth;
		
		windowHeight = self.innerHeight;
	} 
	else if (document.documentElement && document.documentElement.clientHeight) 
	{ 
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} 
	else if (document.body) 
	{
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	if(yScroll < windowHeight) pageHeight = windowHeight;
	else pageHeight = yScroll;	
	if(xScroll < windowWidth) pageWidth = xScroll;		
	else pageWidth = windowWidth;	
	
	return [pageWidth,pageHeight];
}
function cria_miscode_box(nome, w, h, titulo, conteudo, iframe, botoes)
{	
	if(!w) w = "440";
	if(!h) h = "387";
	
	if(!titulo) titulo="&nbsp;";
	
	div =  '<div id="n_'+nome+'" class="div_abs1">&nbsp;</div>';
	div += '<div id="loading_'+nome+'" class="div_load"><img src="'+caminho_img+'loading.png"></div>';
	div += '<div style="width:'+w+'px; height:'+h+'px;" class="div_abs2" id="msg_'+nome+'"><div style="width:'+w+'px; height:'+h+'px;">';
	div += '<div style="width:'+w+'px; background:#DDDDDD; border:#CDCDCD 1px solid; color:#737373; font-size:14px;padding:8px"><b>'+titulo+'</b></div>';
	div += '<div style="width:'+w+'px; height:'+h+'px;overflow:auto;background:#FFFFFF;border-right:#CDCDCD 1px solid; border-left:#CDCDCD 1px solid; padding:8px"><span id="info_'+nome+'">&nbsp;</span></div>';
	
	
	if(!botoes) div += '<div style="width:'+w+'px; height:42px;background:#DDDDDD;border:#CDCDCD 1px solid;"><a href="javascript:;" onclick="close_miscode_box(\''+nome+'\')"><img src="'+caminho_img+'fechar.jpg" border="0"></a></div>';	
	else
	{		
		botoes_ret = devolve_botoes(nome, botoes);		
		div += '<div style="width:'+w+'px; text-align:right;background:#DDDDDD;border:#CDCDCD 1px solid; padding:8px" id="botoes_script_'+nome+'">';				
		div += botoes_ret;	
		div += '</div>';
	}
	
	div += '</div></div>';

 	
	if(document.getElementById('mis_'+nome))
	{
		if(document.getElementById('mis_'+nome)) return "";
	}
	else
	{
	
	var newdiv = document.createElement('div'); 
	newdiv.setAttribute('id', 'mis_'+nome); 
	newdiv.style.position = "absolute";
	newdiv.style.top = "0px";
	newdiv.style.left = "0px";
	newdiv.innerHTML = div;
	
	document.body.appendChild(newdiv);
	}
}

function devolve_botoes(nome, botoes)
{
	var bts="";//=new Array();
	var str="";
	var total_bts = botoes.split(';');	
	for(bt=0; bt<total_bts.length; bt++)
	{
		str = total_bts[bt];
		script = (str_replace("}","",str.substr(10)));
		
		if(total_bts[bt]=="{close}") bts += str_replace(total_bts[bt], '<div style="float:left; padding:2px"><a href="javascript:;" onclick="close_miscode_box(\''+nome+'\')"><img src="'+caminho_img+'fechar_'+lingua_sel+'.png" border="0"></a></div>', total_bts[bt]);
		else if(total_bts[bt]=="{close_refresh}") bts += str_replace(total_bts[bt], '<div style="float:left; padding:2px"><a href="javascript:;" onclick="close_miscode_box2(\''+nome+'\')"><img src="'+caminho_img+'fechar_'+lingua_sel+'.png" border="0"></a></div>', total_bts[bt]);
		else if(total_bts[bt]=="{send_req="+script+"}") bts += str_replace(total_bts[bt], '<div style="float:left; padding:2px"><a href="javascript:;" onclick="executa_script(\''+nome+'\', \''+script+'\')"><img src="'+caminho_img+'send_req.jpg" border="0"></a></div>', total_bts[bt]);
		else
		{
		    var pos=total_bts[bt].indexOf("=");
			var text=total_bts[bt].substr(1, pos-1);
			var jpg=text.indexOf(".png");
			script = total_bts[bt].substr(pos+1);
			script = (str_replace("}","",script));
			
			if(jpg>-1)
				bts += str_replace(total_bts[bt], '<div style="float:left; padding:2px"><a href="javascript:;" onclick="executa_script(\''+nome+'\', \''+script+'\')"><img src="'+caminho_img+text+'" border="0"></a></div>', total_bts[bt]);
			else
			bts += str_replace(total_bts[bt], '<div style="float:left; padding:2px"><a href="javascript:;" onclick="executa_script(\''+nome+'\', \''+script+'\')">'+text+'</a></div>', total_bts[bt]);
		}
	}
		
	return bts;
}


//miscode_box(nome_janela, largura, altura, titulo que aparece no topo, script_para_conteudo, se queremos em iframe colocar 1, botoes dentro do conteudo)
function miscode_box(nome, w, h, titulo, conteudo, iframe, botoes) 
{
		
		//alert(conteudo) 
		if(typeof cria_miscode_box == 'function') cria_miscode_box(nome, w, h, titulo, conteudo, iframe, botoes);
		if(document.getElementById('loading_'+nome))
		{
			document.getElementById('loading_'+nome).style.display = "block"; 
			showdeadcenterdiv(200,66,"loading_"+nome,150);
		}
		if(typeof load_info == 'function') load_info(conteudo,"info_"+nome, nome, w, h, iframe);
		return false;
}
function close_miscode_box(nome)
{
	if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.display = "none";
	if(document.getElementById("msg_"+nome)) document.getElementById("msg_"+nome).style.display = "none";
	if(document.getElementById("loading_"+nome)) document.getElementById("loading_"+nome).style.display = "none";
	if(document.getElementById("mis_"+nome)) document.body.removeChild(document.getElementById("mis_"+nome));
}
function close_miscode_box2(nome)
{
	if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.display = "none";
	if(document.getElementById("msg_"+nome)) document.getElementById("msg_"+nome).style.display = "none";
	if(document.getElementById("loading_"+nome)) document.getElementById("loading_"+nome).style.display = "none";
	if(document.getElementById("mis_"+nome)) document.body.removeChild(document.getElementById("mis_"+nome));
	//window.location.reload();
	window.location = self.location;
}
function close_miscode_box3(frm, script)
{
	nome=frm;
		
	frm = document.getElementById(frm);
	
	if(script)
	{
		if(substr_count (script, "?")) var getstr = "&";
		else var getstr = "?";
	}
	else var getstr = "?";
	
	var getobr = "";
	
	if(!frm || !frm.elements) {return;}
	var elms = frm.elements;
	for(var i = 0, maxI = elms.length; i < maxI; ++i) 
	{	
		var elm = elms[i];	

		if (elm.type == "checkbox") 
		{		
			if (elm.checked)
			{
				getstr += elm.name + "=" + elm.value + "&";			
			}
		}
		
		if (elm.type == "text") 
		{		
			if (elm.value && elm.className=="inputtext_obr")
			{ 
				getstr += elm.name + "=" + elm.value + "&";
			}
			else if (elm.value=="" && elm.className=="inputtext_obr")
			{
				if(getobr) getobr += ", "+elm.name;
				else  getobr += elm.name;
			}
			else
			{
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "hidden") 
		{		
			if (elm.value)
			{
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "radio") 
		{		
			if (elm.checked)
			{ 
				getstr += elm.name + "=" + elm.value + "&";
			}
		}
		
		if (elm.type == "file") 
		{		
				getstr += elm.name + "=" + elm.value + "&";
		}
	}

	
	
	
	if(!substr_count (getstr, "myfriend_")) alert("Please choose friends to compare!");
	else
	{
		if(document.getElementById("player_info_show"))
		{	
			document.getElementById("player_info_show").innerHTML = '<img src="graficos/index.php'+getstr+'" border="0" />';
			if(document.getElementById("n_"+nome)) document.getElementById("n_"+nome).style.display = "none";
			if(document.getElementById("msg_"+nome)) document.getElementById("msg_"+nome).style.display = "none";
			if(document.getElementById("loading_"+nome)) document.getElementById("loading_"+nome).style.display = "none";
			if(document.getElementById("mis_"+nome)) document.body.removeChild(document.getElementById("mis_"+nome));
		}
	}
}
function showdeadcenterdiv(Xwidth,Yheight,divid, mais_topo) 
{
	var scrolledX, scrolledY; 
	if(self.pageYOffset)
	{ 
		scrolledX = self.pageXOffset; 
		scrolledY = self.pageYOffset; 
	} 
	else if(document.documentElement && document.documentElement.scrollTop) 
	{ 
		scrolledX = document.documentElement.scrollLeft; 
		scrolledY = document.documentElement.scrollTop; 
	} 
	else if(document.body) 
	{ 
		scrolledX = document.body.scrollLeft; 
		scrolledY = document.body.scrollTop; 
	} 

	var centerX, centerY; 
	if(self.innerHeight) 
	{ 
		centerX = self.innerWidth; 
		centerY = self.innerHeight; 
	} 
	else if(document.documentElement && document.documentElement.clientHeight) 
	{ 
		centerX = document.documentElement.clientWidth; 
		centerY = document.documentElement.clientHeight; 
	} 
	else if( document.body ) 
	{ 
		centerX = document.body.clientWidth; 
		centerY = document.body.clientHeight; 
	} 

	var leftOffset = scrolledX + (centerX - Xwidth) / 2; 
	var topOffset =  (centerY - Yheight) / 2;
	
	//if(mais_topo) var topOffset = ((100+mais_topo)*1);
	//else  var topOffset = (100);

	var o=document.getElementById(divid); 
	var r=o.style; 
	r.position='absolute'; 
	r.top = (topOffset-50) + 'px'; 
	r.left = leftOffset + 'px'; 
	r.display = "block";
}
function str_replace(f, r, s)
{
   var ra = r instanceof Array, sa = s instanceof Array, l = (f = [].concat(f)).length, r = [].concat(r), i = (s = [].concat(s)).length;
     	while(j = 0, i--)
     		while(s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j < l);
     	return sa ? s : s[0];
}
function substr_count (haystack, needle, offset, length) 
{
    var pos = 0,
        cnt = 0; 
    haystack += '';
    needle += '';
    if (isNaN(offset)) offset = 0;   
	if (isNaN(length)) length = 0;
    offset--; 
    while ((offset = haystack.indexOf(needle, offset + 1)) != -1) 
	{
        if (length > 0 && (offset + needle.length) > length) return false;
		else cnt++;
    } 
    return cnt;
} 
function autoIframe(frameId){
try{
frame = document.getElementById(frameId);
innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
objToResize = (frame.style) ? frame.style : frame;
objToResize.height = innerDoc.body.scrollHeight + 10;
}
catch(err){
window.status = err.message;
}
}

