ccLinks = {
	
	popupRel    : 'popup',	
	externalRel : 'external',		
	winpostRel  : 'winpost',
	windelRel   : 'windel',
	poppostRel  : 'poppost',	
	tooltipRel  : 'tooltip',	

	init : function() {
		if( !document.getElementById || !document.createTextNode) {
			return;
		}
		var allLinks = document.getElementsByTagName('a');

		for( var i=0; i<allLinks.length; i++) {
			// Se existir a palavra popup no atributo rel
			if(new RegExp(ccLinks.popupRel).test(allLinks[i].getAttribute("rel"))){
				ccEvent.addEvent(allLinks[i], 'click', ccLinks.openPopup);
				//ccEvent.addEvent(allLinks[i], 'click', ccLinks.openPopup, false);
				//allLinks[i].onclick = DOMhelp.safariClickFix;
				allLinks[i].onclick = function(){ return false }; // Para não ser enviada essa pagina junto
			} 
			else if(new RegExp(ccLinks.poppostRel).test(allLinks[i].getAttribute("rel"))){
				ccEvent.addEvent(allLinks[i], 'click', ccLinks.popPost);
				allLinks[i].onclick = function(){ return false }; // Para não ser enviada essa pagina junto
			} 
			else if(new RegExp(ccLinks.winpostRel).test(allLinks[i].getAttribute("rel"))){
				ccEvent.addEvent(allLinks[i], 'click', ccLinks.winPost);
				allLinks[i].onclick = function(){ return false }; // Para não ser enviada essa pagina junto
			} 
			else if(new RegExp(ccLinks.windelRel).test(allLinks[i].getAttribute("rel"))){
				ccEvent.addEvent(allLinks[i], 'click', ccLinks.winDel);
				allLinks[i].onclick = function(){ return false }; // Para não ser enviada essa pagina junto
			} 
			else if (allLinks[i].getAttribute("rel") == ccLinks.externalRel){
				allLinks[i].setAttribute("target", "_blank");
			}	
			else if (allLinks[i].getAttribute("rel") == ccLinks.tooltipRel){				
                allLinks[i].onclick = function(e){		
                    oLink = ccEvent.getSource(e);
					ajax_showTooltip(oLink.getAttribute("href"), this);
					return false;
				}
			}
		}
	},
	
	getOLink: function(e){
		if(e.nodeName == undefined){
			var oLink = ccEvent.getSource(e);
		}
		else{
			var oLink = e;
			
		}
		if( oLink.nodeName.toLowerCase() != 'a' ) {
			oLink = oLink.parentNode;
		}		
		return oLink;
	},

	popupProps : function(strRel, str){
		// Formato do rel strRel,target,propriedades
		str = str.substring(strRel.length+1, str.length);
		if(str.indexOf(",") > -1){
			return str.substring(str.indexOf(",")+1, str.length);
		}
		else{
			// Se não houver propriedades abre uma janela completa
			// tem que retornar uma string vazia pra esse comportamento funcionar
			return ''; 
		}
	},

	popupTarget : function(strRel, str){
		// Formato do rel strRel,target,propriedades
		str = str.substring(strRel.length+1, str.length);	
		if(str.indexOf(",") > -1){
			return str.substring(0, str.indexOf(","));
		}
		else{
			return str;
		}
	},
	
	post: function(oLink, relLink, sTarget){

		if(typeof(oLink) == 'string'){
			var aRel = relLink.split(",");
			var oDoc = document;
			var sHref = oLink;
		}
		else{
			if(relLink == ''){	
				var aRel = oLink.getAttribute("rel").split(",");
			}
			else{
				var aRel = relLink.split(",");
			}
			var oDoc = oLink.ownerDocument;
			var sHref = oLink.getAttribute("href");
		}

		var j = (aRel[0] == 'winpost' || aRel[0] == 'windel') ? 1 : 0;
		for(var i=0; i<oDoc.forms['form_param'].elements.length; i++){
			oField = oDoc.forms['form_param'].elements[i];
			if(oField.type == "hidden"){
				if(oField.name == 'form_action'){
					continue;
				}
				if(aRel[j] == undefined){
					aRel[j] = '';
				}
				oDoc.forms['form_param'].elements[i].value = aRel[j];
				j++;
			}
		}
		if(sTarget != undefined){
			oDoc.forms['form_param'].target = sTarget;
		}
		oDoc.forms['form_param'].action = sHref;
		oDoc.forms['form_param'].submit();
	},

	winPost: function(e){
		var oLink = ccLinks.getOLink(e);	
		ccLinks.post(oLink, oLink.getAttribute("rel"), '_self');
	},

	winDel: function(e){
		if(confirm('Tem certeza que deseja excluir este registro?')){
			var oLink = ccLinks.getOLink(e);	
			ccLinks.post(oLink, oLink.getAttribute("rel"), '_self');
		}
	},

	popPost: function(e){
		var oLink = ccLinks.getOLink(e);	
		var aPoppost = oLink.getAttribute("rel").split(";");	
		var sPopupTarget = ccLinks.popupTarget(ccLinks.poppostRel, aPoppost[0]);
		var sPopupProps = ccLinks.popupProps(ccLinks.poppostRel, aPoppost[0]);
		var win = window.open(oLink.getAttribute('href'), sPopupTarget, sPopupProps);		
		ccLinks.post(oLink, aPoppost[1], sPopupTarget);
		win.focus();

	},

	openPopup : function(e) {
		var oLink = ccLinks.getOLink(e);		
		var sPopupTarget = ccLinks.popupTarget(ccLinks.popupRel, oLink.getAttribute('rel'));
		var sPopupProps = ccLinks.popupProps(ccLinks.popupRel, oLink.getAttribute('rel'));
		var win = window.open(oLink.getAttribute('href'), sPopupTarget, sPopupProps);
		win.focus();
	}

}

ccEvent.addEvent(window, 'load', ccLinks.init);