var $ = YAHOO.util.Dom.get;

ContextMenu = {
	yDom: YAHOO.util.Dom, 
	yEvent: YAHOO.util.Event,
	_active: false, 
	_dialog_on: false,
	_result_on: false,
	
	findElement: function(event, tagName)
	{
		var element = event.target || event.srcElement;
		while (element.parentNode && (!element.tagName || (element.tagName.toUpperCase() != tagName.toUpperCase()))) {
			element = element.parentNode;
		}
		return element;
	},

	showContextMenu: function(campo, result)
	{
		//result -> numeric value : 1-10
		this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
		var context = $("context");
		context.onblur = function(){
			ContextMenu.hideContextMenu(true,true); return false;
		}
		var mais_q = $("mais_q");
		context.setAttribute('s:result', "result_" + result);

		if(this._active) {
			context.style.display = 'none';
			mais_q.style.display = 'none';
			this._active = false;
		}

		new Image().src = 'http://pesquisa.sapo.' + location_dns + '/static/CM/';
		$("ct_newwin").href = $("ttl_result_" + result).href;
		$("ct_tags").href = "http://links.sapo." + location_dns + "/post?v=3&url=" + $("ttl_result_" + result).href + "&title=" + SAPO.Utility.String.stripTags($("ttl_result_" + result).innerHTML) + "&tags=" + $("id_q").value;

		var ss_hosts = ['ct_search', 'ss_host', 'as_sitesearch'];

//	var host	= $("ttl_result_" + result).getAttribute('s:host');
		// JSON
		var host = items[result-1].host;
		var hostname = items[result-1].hostname;

		if (barra == 'noticias') {
			$('ss_host').innerHTML = hostname;
			$('ct_search').innerHTML = hostname;
			$('as_sitesearch').value = hostname;
		} else {
			$('ss_host').innerHTML = host;
			$('ct_search').innerHTML = host;
			$('as_sitesearch').value = host;
		}

		$('sendmail_link').value = $("ttl_result_" + result).href;
		$('sendmail_keywords').value = $("id_q").value;
		$('sendmail_title').value = SAPO.Utility.String.stripTags($("ttl_result_" + result).innerHTML);

		$("ssq").value = $("id_q").value;

		var context = $('context');
		var pos = this.yDom.getXY(campo); 
		context.style.display = 'block';
		context.style.left = (parseInt(pos[0],10) + (-6))+'px';
		context.style.top = (parseInt(pos[1],10) + (-12))+'px';

		this.yEvent.addListener(document, 'mouseup', this.hideContextMenu, this, true);
		setTimeout(function(){ this._active = true; }.bindObj(this), 300);
	},

	hideContextMenu: function(e, teste)
	{
		if(this._active) {
			this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
			var context = $('context');
			var mais_q = $('mais_q');
			if( typeof(teste) != 'undefined' && teste === true ) {
				this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
				context.style.display = 'none';
				if((mais_q ) && (mais_q.style.display != 'none')) {
					mais_q.style.display = 'none';
				}
				if(this._dialog_on != false) {
					$(this._dialog_on).style.display = 'none';
					//$(this._result_on).setAttribute('s:currentDialog', '');
					this._dialog_on = false;
					this._result_on = false;
				}
				this._active = false;
			} 
			else 
			{
				var elm = this.findElement(e, 'DIV');
				if(elm.id != 'context' && elm.id != 'mais_q') {
					this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
					context.style.display = 'none';
					if((mais_q) && (mais_q.style.display != 'none')) {
						mais_q.style.display = 'none';
					}
					this._active = false;
				}
				if(this._dialog_on != false) {
					if(elm.className != 'close') {
						$(this._result_on).setAttribute('s:currentDialog', '');
						this._result_on = false;
					}
					if(elm.parentNode.id != this._dialog_on) {
						$(this._dialog_on).style.display = 'none';
						this._dialog_on = false;
						//this._result_on = false;
						this._active = false;
						this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
					}
				}
			}
		}
	},
	
	showContextMenuBlog: function(campo, result)
	{
		var context = document.getElementById('context_blog');
		context.onblur = function(){
			ContextMenu.hideContextMenuBlog(true,true);
			return false;
		}
		var pos = this.yDom.getXY(campo);
		
		context.style.display = 'block';
		context.style.left = (parseInt(pos[0]) + (22))+'px';
		context.style.top = (parseInt(pos[1]) + (-12))+'px';
		
		this.yEvent.addListener(document, 'mouseup', this.hideContextMenuBlog, this, true);
	},
		
	hideContextMenuBlog: function(e, teste)
	{
		if( typeof(teste) != 'undefined' && teste === true ) {
			document.getElementById('context_blog').style.display = 'none';
			this.yEvent.removeListener(document, 'mouseup', this.hideContextMenu, this, true);
		} 
		else 
		{
			var elm = this.yEvent.getTarget(e, true);
			if(elm.id != 'context' && elm.parentNode.id != 'context') {
				document.getElementById('context_blog').style.display = 'none';
				this.yEvent.removeListener(document, 'mouseup', this.hideContextMenuBlog, this, true);
			}
		}
	}
};

function showDialog (dialog, result, hideOnOut) 
{
		ContextMenu.yEvent.removeListener(document, 'mouseup', ContextMenu.hideContextMenu, ContextMenu, true);
		ContextMenu._dialog_on = false;
		ContextMenu._active = false;

		new Image().src = 'http://pesquisa.sapo.' + location_dns + '/static/CM/D/' + dialog;

		result = result || $('context').getAttribute('s:result');
		if(!result) { 
				return false; 
		}

		var li_obj;
		if(typeof result == 'object') {
				li_obj = result.parentNode.parentNode.parentNode;
				$('context').setAttribute('s:result', li_obj.id );
		} else {
				li_obj = $(result);
		}
		var curr_dialog = li_obj.getAttribute('s:currentDialog');
		if(curr_dialog) {
				$(curr_dialog).style.display = 'none';
				$('dialog').appendChild($(curr_dialog));
				li_obj.setAttribute('s:currentDialog', '');
				if(curr_dialog == dialog) { 
						return; 
				}
		}
		/*if(ContextMenu._result_on) {
				$(ContextMenu._result_on).setAttribute('s:currentDialog', '');
				ContextMenu._result_on = false;
		}*/

		var show_obj = $(dialog);
		show_obj.style.display = 'block';

		li_obj.appendChild( show_obj );
		li_obj.setAttribute('s:currentDialog', dialog);

		var rt_script = $(dialog + '_scr');
		if(rt_script) {
				//if(rt_script.getAttribute('s:type') == 'thumbnail') {
				if(dialog == 'thumb_dialog') {
						thumb=new SAPO.Widget.Thumbs({
								'type':'thumbnail',
								'url': li_obj.getElementsByTagName('A').item(0).href,
								'size':'6',
								'divid':dialog + '_scr'
						});
				} else {
						thumb=new SAPO.Widget.Thumbs({
								'type':'pdf',
								'url': li_obj.getElementsByTagName('A').item(0).href,
								'mail':true,
								'divid':dialog + '_scr'
						});

			}
		}
		if(hideOnOut && typeof(hideOnOut) != 'undefined') {
				ContextMenu.yEvent.addListener(document, 'mouseup', ContextMenu.hideContextMenu, ContextMenu, true);
				ContextMenu._dialog_on = show_obj.id;
				ContextMenu._result_on = li_obj.id;
				setTimeout(function() { ContextMenu._active = true; } , 300);
		}

}

function runtimeScript (div_id,url)
{
				var script = document.createElement('SCRIPT');
				script.type = 'text/javascript';
				script.charset = 'utf-8';
				script.src = url;
				$(div_id).appendChild(script);
}

function toggle(what) 
{
	ContextMenu.yEvent.removeListener(document, 'mouseup', ContextMenu.hideContextMenu, ContextMenu, true);
	var where = $(what);
	if ( where.style.display == "none" ) {
		where.style.display = "block";
		ContextMenu.yEvent.addListener(document, 'mouseup', ContextMenu.hideContextMenu, ContextMenu, true);
		setTimeout(function(){ContextMenu._active = true;},300);
	} else {
		where.style.display = "none";
		ContextMenu.yEvent.removeListener(document, 'mouseup', ContextMenu.hideContextMenu, ContextMenu, true);
	}
}

function pos_ads(){
		var ads_pos = [ { 'src': 'dlleft',	'dst':'adl'}, { 'src': 'dlright', 'dst':'sapo_adr'}, { 'src': 'dlbottom', 'dst':'adb'} ];

		var got_sapo_wide = 0;
		for( i in ads_pos ) {
			 var dl_obj = $(ads_pos[i].src);
			 if( dl_obj ) {
				 var dst_c = $(ads_pos[i].dst + 'container');
	 if(!dst_c) { return; }

				 dst_c.appendChild(dl_obj);
				 $(ads_pos[i].dst).style.display = 'block';
				 if(ads_pos[i].dst == 'adl') {
						got_sapo_wide = 1;
				 };
			 }
		} if( !got_sapo_wide && $('adl') && $('sponsor_wide') ) {
				$('adl').innerHTML = $('sponsor_wide').innerHTML;
				$('adl').style.display = 'block';
		}
}


function highlight(what){
	what.className = (what.className == 'hover' ? '' : 'hover');
}

function toggleAdvancedSearch() {
		$('barra').value='mundial';

		var ajaxObject = { 
				URI :	'/rp/imgs/2006/lib/adv.html',
				DEST : 'q_adv',

				handleSuccess:function(o) {
						$(this.DEST).innerHTML = o.responseText;
				},
				startRequest:function() {
						YAHOO.util.Connect.asyncRequest('GET', this.URI, callback);
				}
		};

		var callback = {
				success: ajaxObject.handleSuccess,
				failure: ajaxObject.handleFailure,
				scope:	 ajaxObject
		};

		ajaxObject.startRequest();

		toggle('q_adv');
}

function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
	document.cookie = curCookie;
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
		begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
		end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}
function setST(st,op) { setCookie('st', st, 'Sun, 17-Jan-2038 19:14:07 GMT;', '/', document.domain);$('stInfo').innerHTML = "Prefer&ecirc;ncia guardada, a op&ccedil;&atilde;o <strong>" + op	+ "</strong> ser&aacute; usada nas pr&oacute;ximas pesquisas.";}

function mytoggle(what) { var s = $(what).style; s.display = (s.display == ""?'block':''); }
function updateHref(obj) { uri = obj.href; q = encodeURIComponent( $('id_q').value ); obj.href = uri.replace( /q=[^&]+/, 'q='+q ); }
