//===================================================
// GlobalFunctions.js
// Librerķa de funciones globales
// Version: 1.00
//
// www.Linkearte.com (c) 2002
// Patricio Ghiraldo
//===================================================

//---------------------------------------------------
// Funciones para el manejo de el: onMouseOver, onMouseOut
// Las imagenes debe estar definidas con sus dos versiones,
// la opcion 'on' y la 'off'
//---------------------------------------------------

// Function to 'activate' images.
function imgOn(imgName) {
	if (document.images) document[imgName].src = eval(imgName + "on.src");
}
// Function to 'deactivate' images.
function imgOff(imgName) {
	if (document.images) document[imgName].src = eval(imgName + "off.src");
}

//---------------------------------------------------
// Box Data Functions
// Personal Links / ...
//---------------------------------------------------
var arrPL = new Array();		// array de Personal Links
var arrBoxes = new Array();	// array de Cajas (y sus Datos)

function PersonalLink(Url,Nombre){
	this.Url = Url;
	this.Nombre = Nombre;
}
function BoxData(ID,LinksData){
	this.ID = ID;
	this.LinksData = LinksData;
}

//---------------------------------------------------
// Manejo de Datos de las Cajas / 'arrBoxes'
//---------------------------------------------------

function getBoxesData(Key){
	var k=0;
	arrBoxes = new Array();
	
	var aBoxes= new Array();
	var aBoxData= new Array();
	
	var cookieName= Key + 'Data';
	var cookieVal= getCookie(cookieName);
	
	if (cookieVal==null) {
		return(false);
	}else{
		aBoxes= cookieVal.split("*B");
		for (var i=0; i<aBoxes.length; i++){
			aBoxData= aBoxes[i].split("*D");
			arrBoxes[k++]= new BoxData( aBoxData[0], aBoxData[1] );
		}
		return(true);
	}
}

function setBoxesData(Key){
	var cookieName= Key + 'Data';
	
	var aBoxes= new Array();
	var sBoxData, j;
	
	if (arrBoxes.length>0){
		j=0;
		for (var i=0; i<arrBoxes.length; i++){
			// controlo que existan datos a grabar
			if (arrBoxes[i].LinksData.length>0) {
				sBoxData = arrBoxes[i].ID +"*D"+ arrBoxes[i].LinksData;
				aBoxes[j++]= sBoxData;
			}
		}
		var cookieVal = aBoxes.join("*B");
		setCookie(cookieName, cookieVal, gPagePath);
	}else{
		delCookie(cookieName);
	}
	return(true);
}

function updateBox_LinksData(BoxID, LinksData){
	var i;
	for (i=0; i<arrBoxes.length; i++){
		if (arrBoxes[i].ID==BoxID){
			arrBoxes[i].LinksData= LinksData;
			break;
		}
	}
	if(i>=arrBoxes.length){
		i = arrBoxes.length;
		arrBoxes[i]= new BoxData( BoxID, LinksData );
	}
	return(true);
}

function deleteBoxData(BoxID){
	var i,k;
	for (i=0; i<arrBoxes.length; i++){
		if (arrBoxes[i].ID==BoxID){
			k=i;
			break;
		}
	}
	for (i=k; i<arrBoxes.length; i++){
	   if (i==(arrBoxes.length -1)){
			arrBoxes[i] = "";
			arrBoxes.length -= 1;
	   }else{
	      arrBoxes[i] = arrBoxes[i+1];
	   }
	}   
	return(true);
}

//---------------------------------------------------
// Manejo de los Personal Links de una Caja / 'arrPL'
//---------------------------------------------------

function readBox_arrPL(BoxID){
	var aBoxLinks = new Array();
	var aLinkData = new Array();
	var k=0;
	
	arrPL= new Array();
	
	for (var i=0; i<arrBoxes.length; i++){
		if (arrBoxes[i].ID==BoxID){
			aBoxLinks = arrBoxes[i].LinksData.split("*L");
			for (var j=0; j<aBoxLinks.length; j++){
				aLinkData = aBoxLinks[j].split("*U");
				arrPL[k++]= new PersonalLink( URLDecode(aLinkData[0]), aLinkData[1] );
			}
		}
	}
	
	return(true);
}

function saveBox_arrPL(BoxID){
	var i,j;
	
	var aBoxLinks = new Array();
	var sBoxLinks = '';

	// Build Box Links content
	if (arrPL.length > 0){
		j=0;
		for (i=0; i<arrPL.length; i++){
			if ((arrPL[i].Url.length>0)&&(arrPL[i].Nombre.length>0)) {
				aBoxLinks[j++] = URLEncode(arrPL[i].Url) +"*U"+ arrPL[i].Nombre;
		   }
		}
		sBoxLinks = aBoxLinks.join("*L");
	}else{
		sBoxLinks = '';
	}
	
	// Actualizo los elementos de Links
	updateBox_LinksData(BoxID, sBoxLinks);

	return(true);

}

function getPersonalLinks(Key,BoxID){
	if (getBoxesData(Key)) {
		readBox_arrPL(BoxID);
		return(true);
	}
	return(false);
}

function setPersonalLinks(Key,BoxID){

	// Actualizo los Datos del Dox en base al array 'arrPL'
	saveBox_arrPL(BoxID);
	
	// Grabo los datos del los Boxes
	setBoxesData(Key);
	
	return(true);
}

function URLEncode(url){
	var s,r,p;
	
	r = url.toLowerCase();
	
	var i=1;
	while (i>0){
		s=r;
		switch (i){
			case 1:
				if (s.substring(0,11)=='http://www.')
					r = '-1'+ s.substring(11,s.length);
				i++;
				break;
			case 2:
				if (s.substring(0,7)=='http://')
					r = '-2'+ s.substring(7,s.length);
				i++;
				break;
			case 3:
				p=s.indexOf('.com.ar');
				if (p>=0)
					r = s.substring(0,p) +'-3'+ s.substring(p+7,s.length);
				i++;
				break;
			case 4:
				p=s.indexOf('.com');
				if (p>=0)
					r = s.substring(0,p) +'-4'+ s.substring(p+4,s.length);
				i++;
				break;
			default:
				i=0;
				break;
		}
	}
	
	return(r);
}
function URLDecode(url){
	var s,r,p;
	
	r = url.toLowerCase();
	
	var i=1;
	while (i>0){
		s=r;
		switch (i){
			case 1:
				if (s.substring(0,2)=='-1') 
					r= 'http://www.'+ s.substring(2,s.length);
				i++;
				break
			case 2:
				if (s.substring(0,2)=='-2') 
					r= 'http://'+ s.substring(2,s.length);
				i++;
				break
			case 3:
				p=s.indexOf('-3');
				if (p>=0)
					r = s.substring(0,p) +'.com.ar'+ s.substring(p+2,s.length);
				i++;
				break;
			case 4:
				p=s.indexOf('-4');
				if (p>=0)
					r = s.substring(0,p) +'.com'+ s.substring(p+2,s.length);
				i++;
				break;
			default:
				i=0;
				break
		}
	}
	
	return(r);
}

//---------------------------------------------------
// Cookie Functions
//---------------------------------------------------
function getCookie(name){
	var cookieName=name+"=";
	var i=0, j=0, k=0;
	
	while(i<document.cookie.length){
		j=i+cookieName.length;
		if(document.cookie.substring(i,j)==cookieName) {
			k=document.cookie.indexOf(";",j);
			if(k==-1) k=document.cookie.length;
			return( unescape(document.cookie.substring(j,k)) );
		}
		i=document.cookie.indexOf(" ", i)+1;
		if(i==0) break;
	}
	return(null);
}

function setCookie(name,value,path){
	if(path==null||path=='') path='/';
	
	if(value!=null&&value!="") {
		var today=new Date();
		var expiry=new Date(today.getTime()+31536000000);
		document.cookie=name+"="+escape(value)+";expires="+expiry.toGMTString()+";path="+path;
		return(true);
	}
	return(false);
}

function delCookie(name) {
	document.cookie = name +"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/";	
	return(true);
}


// ABRIR VENTANA
function Ventana(desktopURL)  
      { 
	  var desktop = window.open( desktopURL, "_blank", "width=500,height=400,scrollbars=yes,resizable=no");
      }
// -->
