//////////////////////////////////////////////////////////////////
// mapClick - Analytics map click by Flavio Theruo Kaminisse
// http://www.japs.etc.br
// Found on Revolucao.Etc
// http://www.revolucao.etc.br
// Authorized use by authors
//////////////////////////////////////////////////////////////////

mapclick = {
	name : "/mapclick/", //initial string of urchinTracker
	nameClass : "mapclick_", //initial name of class ex: mapclick_description_of_link
	arrayElements : new Array("a","input"), //elements to apply onclick
	mclick : null, //final string of urchinTracker
	isIE : false
}

mapclick.init = function () {
	var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
	
	var element, sHref, sRel, sVal, aClass, relNames;
	mapclick.isIE = ( document.all ) ? true:false;
	for ( x in mapclick.arrayElements ) { //get all tags in array arrayElements
		elements = document.getElementsByTagName ( mapclick.arrayElements[x] );
		
		for ( i = 0; i < elements.length; i++ ) { //set onclick action for each element
			element = elements[i];
			sHref = element.getAttribute("href");	//href attribute
			sVal = element.innerHTML;				//link text attribute
			sRel = element.getAttribute("rel");		//rel attribute
			
			//Name's onclick
			if ( sVal ) { //use name of link
				mapclick.mclick = sVal;
			} else { //use href
				mapclick.mclick = sHref;
			} //End of else
			
			if ( element.className ) {
				aClass = element.className.split(" ");	//array class attribute
				//set mapclick using class attribute
				for ( n in aClass ) {
					if ( aClass[n].indexOf(mapclick.nameClass) != -1 ) { //if class init with variable nameClass
						mapclick.applyOnClick(element, aClass[n].replace(mapclick.nameClass,""));
					} //if
				} //End of for
			} else if ( ( sHref && sRel ) ) { //set mapclick using rel attribute
				relNames = sRel.split(" "); //array with rel's attribute
				
				for ( n in relNames ) {
					if ( relNames[n].indexOf("tag") != -1 ) { //rel's attribute equal tag
						mapclick.applyOnClick(element, "tag/"+mapclick.mclick+"");
					} else if ( ( relNames[n].indexOf("external") != -1 ) || ( relNames[n].indexOf("externo") != -1 ) ) { //rel's attribute equal external or externo
						mapclick.applyOnClick(element, "external/"+mapclick.mclick+"");
					} else if ( relNames[n].indexOf("category") != -1 ) { //rel's attribute equal category
						mapclick.applyOnClick(element, "category/"+mapclick.mclick+"");
					} else if ( relNames[n].indexOf("license") != -1 ) { //rel's attribute equal category
						mapclick.applyOnClick(element, "license/"+mapclick.mclick+"");
					} //End of else
				} //End of for
			} else if ( sHref ) { //Other links
				mapclick.applyOnClick(element, "link/"+mapclick.mclick+"");
			}
			
		} //End of for
	} //End of for
} //mapclick.init

mapclick.applyOnClick = function ( element, str ) {
	var sOnClick;
	var sAnt = "";
	
	if ( mapclick.isIE )
		sOnClick = element['onclick'];
	else
		sOnClick = element.getAttribute("onclick");
	
	do {
		sAnt = str;
		str = str.replace(/ /,"_");
	} while ( sAnt != str );
	
	if ( sOnClick == null ) {
		if ( mapclick.isIE ) {
			element['onclick'] = function () { urchinTracker(mapclick.name+str); }
			//element['onclick'] = function () { urchinTracker("'"+mapclick.name+str+"'"); }
			//element['onclick'] = function () { alert("'"+mapclick.name+str+"'"); return false; }
		} else {
			element.setAttribute("onclick", "urchinTracker('"+mapclick.name+str+"');");
			//element.setAttribute("onclick", "alert('"+mapclick.name+str+"'); return false;");
		}
	} else if ( !mapclick.isIE && !window.opera ) { //just Firefox
		if ( sOnClick.indexOf("urchinTracker('"+mapclick.name) == -1 ) {
			element.setAttribute("onclick", sOnClick+" urchinTracker('"+mapclick.name+str+"');");
		} //if have onclick
	}
	
	/*if ( sOnClick ) {
		alert(sOnClick.indexOf("urchinTracker('"+mapclick.name));
		if ( sOnClick.indexOf("urchinTracker('"+mapclick.name) == -1 ) {
			element.setAttribute("onclick", sOnClick+" urchinTracker('"+mapclick.name+str+"');");
		} //if
	} else {
		element.setAttribute("onclick", "urchinTracker('"+mapclick.name+str+"');");
	} //End of else*/
} //mapclick.applyOnClick

ELO.functionsToCallOnload.push("mapclick.init()")