function BannerUtils(){	
	this.isOnCookie = function (maxiPubliId, cookie){
		if (cookie==null) return false;
			var cookieArray = cookie.split('@');
			for(j=0;j<cookieArray.length;j++){
				if(cookieArray[j] == maxiPubliId) return true;
		}
		return false;
	}

	this.getCookie = function ( name ) {	
			var start = document.cookie.indexOf( name + "=" );	
			var len = start + name.length + 1;	
			if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) return null;	
			if ( start == -1 ) return null;		
			var end = document.cookie.indexOf( ';', len );		
			if ( end == -1 ) end = document.cookie.length;	
			return unescape( document.cookie.substring( len, end ) );
	}
			
	//string name , string value, int expires (0 to sesion) , String path (/ default), string domain, boolean secure (false default)) 	
	this.setCookie = function ( name, value, expires, path, domain, secure ) {
		var today = new Date();
		today.setTime( today.getTime() );
		if ( expires ) {
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
		
		document.cookie = name+'='+escape( value ) +
			(( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
			(( path ) ? ';path=' + path : '' ) +
			(( domain ) ? ';domain=' + domain : '' ) +
			(( secure ) ? ';secure' : '' );

	}

	this.deleteCookie = function ( name, path, domain ) {
		if ( this.getCookie( name ) ) document.cookie = name + '=' +
				( ( path ) ? ';path=' + path : '') +
				( ( domain ) ? ';domain=' + domain : '' ) +
				';expires=Thu, 01-Jan-1970 00:00:01 GMT';
	}
}

function getDomainName(){
	var domain = "http://" + window.location.toString().split("//")[1].split("/")[0] + "/";
}


var bannersObj = new BannerUtils();

var cookieName = "bannerPrincipal";


function makeBanner(bannerListStr, path){
		var divContainer = document.getElementById("banner_principal");
		var selectedBanner = bannerListStr[useBanner];
		var bannerStrAr = null;
		var bannerArr = null;
		
		if (selectedBanner!=undefined)
		{
		  bannerStrArr = selectedBanner.split("@");
		  bannerArr = new Array(bannerStrArr.length);
		}  
		var returnHtml="";	
		var cookie = bannersObj.getCookie(cookieName+"-"+path);
		var notLoadedArr = new Array();
		var notLoaderCount = 0;

		if (bannerArr!=undefined)
		{
			// load MaxiPubliJs Ojects into Array
			for (i=0;i<bannerArr.length;i++){
			    	bannerArr[i]=new BannerJs(bannerStrArr[i]);
			}
				
			// making an array with not loaded banners
			for (i=0;i<bannerArr.length;i++){
				if(!bannersObj.isOnCookie(bannerArr[i].id, cookie)){
					notLoadedArr[notLoaderCount++] = bannerArr[i];
				}
			}
		}
		
		var i = null;
		
		if (notLoadedArr!=undefined)
		{
			i = Math.floor(Math.random()*notLoadedArr.length);
			
			if (cookie==null) cookie="";
	
			if(notLoadedArr[i]!=undefined){
				if(cookie.length>0)
					cookie = cookie + '@';
					
				bannersObj.setCookie( cookieName+"-"+path, cookie + notLoadedArr[i].id, 1000, '/', getDomainName(), false );	
				returnHtml=returnHtml+notLoadedArr[i].BuildHtml();
			}

			// If all banner has been loaded, delete cookie
			if(notLoadedArr.length <= 1){ 
				bannersObj.deleteCookie(cookieName+"-"+path, '/', getDomainName());
			}	
			
		}
		            						
		if(notLoadedArr[i]!=undefined){
			divContainer.className=notLoadedArr[i].border=="true"?"marco":"";
		}
		else
		{
			divContainer.className="";			
		}
		
		divContainer.innerHTML = returnHtml;
}
 	
function BannerJs(bannerStr){
	var mySplitResult = bannerStr.split("|");
	this.type = mySplitResult[0];
	this.image = mySplitResult[1];
	this.link = mySplitResult[2];
	this.text = mySplitResult[3];
	this.defaultBanner = mySplitResult[4];
	this.border = mySplitResult[5];
	this.width = mySplitResult[6];
	this.height = mySplitResult[7];
	this.alt = mySplitResult[8];
	this.title = mySplitResult[9];
	this.id = mySplitResult[10];
	this.newWindow = mySplitResult[11];


	this.BuildHtml = function () {
		var innerHtmlStr="";
		
		if(this.image!=null){
			innerHtmlStr = innerHtmlStr + '<div id="banner_principal_img">';
		}


		switch(this.type){
			case "imagen":
				if(this.link!="null" && this.link.length > 0){
					innerHtmlStr = innerHtmlStr + '<a href="' + this.link;
					if (this.newWindow=="true")
						innerHtmlStr = innerHtmlStr + '" rel="targetblank';
					innerHtmlStr += '">';
				}
				innerHtmlStr = innerHtmlStr + '<img src="' + this.image;
				if (this.width>0)
					innerHtmlStr = innerHtmlStr + '" width="' + this.width;
				if (this.heigth>0)
					innerHtmlStr = innerHtmlStr + '" height="'+ this.heigth;
				if (this.alt!="")
					innerHtmlStr = innerHtmlStr + '" alt="'   + this.alt;
					
				innerHtmlStr = innerHtmlStr +'">';
				
				if(this.link!="null" && this.link.length > 0){
					innerHtmlStr = innerHtmlStr + '</a>';
				}
			break;
			case "flash":
				innerHtmlStr += '<object type="application/x-shockwave-flash" data="';
				innerHtmlStr += this.image;
				innerHtmlStr += '" width="';
				innerHtmlStr += this.width;
				innerHtmlStr += '" height="';
				innerHtmlStr += this.height;
				innerHtmlStr += '">';
				innerHtmlStr += '<param name="movie" value="';
				innerHtmlStr += this.image;
				innerHtmlStr += '" />';
				innerHtmlStr += '<param name="quality" value="high" />';
				innerHtmlStr += '<param name="wmode" value="transparent" />';
				if(this.link.length > 0){
						innerHtmlStr += '<param name="flashvars" value="' + this.link + '" />';
				}
				innerHtmlStr += '<div class="descargar_flash">';
				innerHtmlStr += '<p>Este contenido requiere una versión más actualizada de Adobe Flash Player ¿Desea instalarlo?</p>';
				innerHtmlStr += '<p><a title="Descargar flash player" href="http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe">Descargar flash player</a></p>';
				innerHtmlStr += '<p><a title="Página de descargas de Adobe" href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&amp;Lang=Spanish">Página de descargas de Adobe</a></p>';
				innerHtmlStr += '</div>';
				innerHtmlStr += '</object>\n';
				
			break;
		}
		
		if(this.image!=null)
			innerHtmlStr = innerHtmlStr + '</div>';
		
		if(this.text!=null){
		  if (this.text != undefined && this.text.length != 0){
			innerHtmlStr = innerHtmlStr + '<div id="banner_principal_texto" style="height:' + (this.height-20)/10 + 'em;" >';
			innerHtmlStr = innerHtmlStr + this.text;
			innerHtmlStr = innerHtmlStr + '</div>';
		  }				
		}
		
		return innerHtmlStr;
	}							
}
