var ticket = "";
//funci� para mostrar capa oculta y esconder capa visible
function toggleObjectDisplay(objId, tick)
	{
	ticket = tick;	
	obj = document.getElementById(objId);
	if (obj)
		{
		if (obj.style.display == "block") obj.style.display = "none";
		else obj.style.display = "block";
		}
	}

window.name = "home"; //Nombre de la ventana principal en el caso de estar en la home
allClippings = new Array();  //all Clippings on page
activeClippings = new Array() //all Clippings stored by the user
currentClipping = 0; //where in the list of Clippings is the user
clippingsDivArray = new Array(); //array of all clipping divs on the page, used to find duplicates
cookiesOn = false; //used to make sure cookies are enabled

clippingsTag = "A"; //the tag which the Clipping icon is located in

var mouseX = mouseY =0;

//returns height, width and other window information
//works in NS6 and IE5(Mac/Win)

function screenObject()
	{

	this.bottom = function(){
		if (document.body.scrollHeight) return document.body.scrollHeight};
	
	this.height = function() {
		if (document.body.offsetHeight) return document.body.offsetHeight;}
	
	this.visHeight = function() {
		if (window.innerHeight) return window.innerHeight;
		if (document.body.clientHeight) return document.body.clientHeight;}
	
	this.width = function() {
		if (document.body.offsetWidth) return document.body.offsetWidth;}
	
	this.scrollTop = function() {
		if(document.body.scrollTop) return document.body.scrollTop
		if (window.pageYOffset) return window.pageYOffset;
		else return 0;};
	}

function mousePosition(e)
	{
	if (e) event = e;   //for Netscape
	mouseX = event.clientX;
	mouseY = event.clientY;
	}
	
//resize the clippings container	
function windowResize()
	{
	clippingsSetContainerHeight()
	}

//this method needs to be called to initialize the clippings
function initClippings()
	{
	createPageClippingsArray()
	loadClippings();
	setClippingsVisibility();		
	updateClippingCounter();
	drawClippings();
	numArticulosH();// Muestra el numero total de articulos
	}	



//clipping class
function Clipping(id,name,URL, read)
	{
	this.id = id;
	this.name = name;
	this.URL = URL;
	this.read = read;
	this.clicked = markRead;
	}


//get Clippings from a cookie
function loadClippings()
	{
	clippingsString = null;
	tempArray = document.cookie.split(";");
	x = -1;
		
		for (tA = 0; tA < tempArray.length; tA++)
			{
			if (tempArray[tA].indexOf('clippings=') > -1) //found the clippings section
				{
				tPos = tempArray[tA].indexOf("=")+2;
				clippingsString = tempArray[tA].substring(tPos,tempArray[tA].length); //striping out "clippings=^"
				}
			
			}
	if (clippingsString != null)
		{		
		tempArray = clippingsString.split("^");
		if (tempArray.length > 1)
		{
		x=0;
		for (i=0; i < tempArray.length/4; i++)
			{
			//add the id, name, url, readstate
			activeClippings[i] = new Clipping(tempArray[x],tempArray[x+1],tempArray[x+2],tempArray[x+3])
			x=x+4;
			}}
		}
	}

//saves clippings to cookie	
function saveClippings()
	{
	tempCookie = "clippings=";
	for(i=0; i < activeClippings.length; i++)
		{
		tempCookie=tempCookie+"^"+(activeClippings[i].id)+"^"+(activeClippings[i].name)+"^"+(activeClippings[i].URL)+"^"+(activeClippings[i].read);
		}
		var expire = new Date ();
   		expire.setTime (expire.getTime() + (6 * 24 * 3600000)); //expires in 6 days from users clock
   		expire = expire.toGMTString();
	finalCookie = tempCookie+"; path=/; expires="+expire;  	
  	document.cookie = finalCookie;
	}


// detects wether cookies are turned on or not
function eventCheckForCookies()
	{
	document.cookie = "cookies=on";
  	
  	checkForCookie = document.cookie.split(";");
  	
  		for (x=0; x < checkForCookie.length; x++)
  			{
  			if (checkForCookie[x].indexOf("cookies") >= 0) {cookiesOn = true;}
  			}
  		if (cookiesOn == false) alert("Necessita activar as\ncookies para usar este sistema.");
	}


//marks a clipping read
function markRead(id)
	{
	if (!id) id = this.id.substring(5,this.id.length);
	for (i=0; i < activeClippings.length; i++)
		{
		if (activeClippings[i].id == id) activeClippings[i].read = "yes";
		}
		
	//refresh the container
	drawClippings();
	}	

//loads the url of the clipping
function loadClippingURL(pos)
	{
	markRead(activeClippings[pos].id);
	saveClippings();
	var cadena = activeClippings[pos].URL;	
	n = open(cadena,"home");
	}

//load next unread clipping in array
function eventShowNextClipping()
	{
	if (activeClippings != null) 
		{
		total = 0;
		for (aC = 0; aC < activeClippings.length; aC++)
			{
			if (activeClippings[aC].read != "yes") 
				{
				markRead(activeClippings[aC].id);
				saveClippings();
				loadClippingURL(aC);
				//document.location = activeClippings[aC].url;
				break;
				}
			}
		}
	}

//removes all read clippings	
function eventClearReadClippings()
	{
	tempClippings = new Array()
	x = 0;
	for (i=0; i < activeClippings.length; i++)
		{
		if (activeClippings[i].read != "yes") {tempClippings[x] = activeClippings[i]; x++}
		}
	activeClippings = tempClippings;
	drawClippings();
	setClippingsVisibility();	
	updateClippingCounter();
	saveClippings();
	numArticulosH();// Muestra el numero total de articulos
	}

//removes all read clippings	
function eventClearOneClipping(ident)
	{
	tempClippings = new Array()
	x = 0;
	for (i=0; i < activeClippings.length; i++)
		{
		if (activeClippings[i].id != ident) {tempClippings[x] = activeClippings[i]; x++}
		}
	activeClippings = tempClippings;
	drawClippings();
	setClippingsVisibility();	
	updateClippingCounter();
	saveClippings();
	numArticulosH();// Muestra el numero total de articulos
	}

//removes all clippings	
function eventClearAllClippings()
	{
	
	activeClippings = new Array();
	updateClippingCounter();
	setClippingsVisibility();
	drawClippings();	
	saveClippings();
	numArticulosH();// Muestra el numero total de articulos
	}

//creates the HTML for the clippings menu when a clipping is added
//removed create element and used innerHTML instead
function drawClippings()
	{
	newHTML = "";
	
	//draw this text if there are no clippigns
	if (activeClippings.length < 1) 
		{
		newHTML = "<table align ='center' border='0' cellpading='0' cellspacing='0'><tr><td style='text-align: justify; padding: 4px;'>Não tem nenhum artigo guardado.<br><br>Para guardar um artigo, clique no símbolo de pasta que está junto a cada um deles.</td></tr></table>";
		}
	
	for (i=0; i < activeClippings.length; i++)
		{
		clipping = activeClippings[i];
		
		if (clipping.read == "yes") tClass = "textoclip";
		else tClass = "textoclip";

	newHTML += "<table width='102' border='0' cellpading='0' cellspacing='0'><tr><td><span class='"+tClass+"'><a href=\"javascript:loadClippingURL("+i+")\" id='cLink"+clipping.id+"'>";	
		newHTML +="&#8226;"+clipping.name+"</a><a href=\"javascript:eventClearOneClipping("+clipping.id+");\">[X]</a></span></td></tr><tr><td><img src='img/misc/pixtrans.gif' width='1' height='2'></td></tr></table>";
		
		}
		
	obj = document.getElementById("clippingsContainer");
	
	obj.innerHTML = newHTML;
	
	//this is a fix for Mozilla, which is not draw the contents to screen currently;
	obj.style.display = "none";
	obj.style.display = "block";
	
	//make sure that the clippings container does not go off screen
	clippingsSetContainerHeight();
	}


//sets the height of the clippings container, make sure it does not go off screen
function clippingsSetContainerHeight()
	{
	obj = document.getElementById("clippingsContainer");
	if (userScreen.visHeight() > 375)
		{
		obj.style.height= "200px";
		}
	}


//make sure there is no other record of that clipping in use
function checkForDuplicates()
	{
	for (i=0; i < activeClippings.length; i++)
		{
		if (newClipping == activeClippings[i].id) {i = allClippings.length; duplicate = true;}
		}
	}


//creates array of all clippings on page
//having this array helps speed things up on the mac
function createPageClippingsArray()
	{
		d = document.getElementsByTagName(clippingsTag)
		for (j=0; j < d.length; j++) if (d[j].id.indexOf("clp") > -1) 
			{
			clippingsDivArray[clippingsDivArray.length] = d[j];
			}
	 }

//finds duplicate clippings on a page
function clippingInstanceVisibility(id,state)
	{
	t = document.getElementsByName(id);
	if(t.length > 0)
		{
		for (j=0; j < t.length; j++) 
			{
			t[j].style.visibility = state;
			t[j].onclick = addClipping;
			}
		}
	else {
	 	d = clippingsDivArray;
  		{
		for (j=0; j < d.length; j++) if (d[j].id == id) 
			{
			d[j].style.visibility = state;
			d[j].onclick = addClipping;
			}
		}
		}		
	}
	
//sets the visibility and events for an object;	
function setClippingsVisibility()
	{
	
	for (i=0; i < allClippings.length; i++)
		{
		vis = "visible";
		
		//find if this clipping is already selected
		for (x=0; x <activeClippings.length; x++) if (allClippings[i].id == activeClippings[x].id) vis = "hidden";
			obj = "clp"+allClippings[i].id;
			clippingInstanceVisibility(obj,vis)
			}
			
		}

//this event is triggered when a clipping is clicked 
function addClipping()
	{
	newClipping = this.id.substring(3,this.id.length)
	duplicate = false;
	for (i=0; i < allClippings.length; i++) //find the position the allClippings array of the selected clipping
		{
		if (newClipping == allClippings[i].id) {pos = i; i = allClippings.length}
		}
		
	if (activeClippings.length > 0)	checkForDuplicates() //make sure clipping is not already seletected
	
	if (!duplicate)
	{	
		eventCheckForCookies();
		if (cookiesOn == true)
			{
			activeClippings[activeClippings.length] = new Clipping(allClippings[pos].id,allClippings[pos].name,allClippings[pos].URL);
			
			//find all instances of the clipping in article and hides it
	 		clippingInstanceVisibility(this.id,'hidden') 
	 		
	 		drawClippings();	
	 		if (document.all) event.cancleBubble = true;
	 		updateClippingCounter();
			saveClippings();
		 	}
	 	}
	numArticulosH();// Muestra el numero total de articulos
	}


//sets the number of unread clippings
function updateClippingCounter()
	{
	if (activeClippings != null) 
		{
		total = 0;
		for (aC = 0; aC < activeClippings.length; aC++)
			{
			if (activeClippings[aC].read != "yes") total++
			}
		}
	obj = document.getElementById("clippingsCounter");
	obj.innerHTML = "<span class='textoclipping'>Artigos não lidos: "+total+"<br><a href=\"javascript:eventShowNextClipping()\">Próximo não lido</a></span>";
	obj.style.display = "none";
	obj.style.display = "block";
	}
	
	
//initialize clippings
	function init()
		{		
		//fix for differences in how IE and Netscape setAttribute to the class property
		if (document.all) classFix = "className";
		else classFix = "class";
		
		//create a screen object, handles height, width of the screen
		userScreen = new screenObject(); 
		
		//in window.js
		window.onresize = windowResize;
		
		initClippings();

		}
		
	window.onload = init;	

//total del articulos
//Para la Home
function numArticulosH()
	{
	newHTML = "";
	
	//draw this text if there are no clippigns
	if (activeClippings.length < 1) 
		{
		newHTML = "<span class='textoclipping'>0</span>";
		}
	else
		{
		newHTML = "<span class='textoclipping'>"+activeClippings.length+"</span>";
		}
		
	obj = document.getElementById("numArticulosH");
	
	obj.innerHTML = newHTML;
	
	//this is a fix for Mozilla, which is not draw the contents to screen currently;
	obj.style.display = "none";
	obj.style.display = "block";
	}
