YAHOO.namespace( 'santiago');

YAHOO.santiago = new Object();
YAHOO.santiago.popup;
YAHOO.santiago.delay;
YAHOO.santiago.timeout;
YAHOO.santiago.timeout2;
YAHOO.santiago.links;

YAHOO.santiago.hidemovies = function( root ) {
	YAHOO.log( 'hidemovies');

	if( root == undefined ) {
		root = document.getElementById( 'doc' );
	}
	else if( root[0] != undefined ) {
		root = root[0];
	}

	var movies = YAHOO.util.Dom.getElementsByClassName( 'embedded_quicktime', 'div', root );
	if( movies.length > 0) {
		YAHOO.util.Dom.setStyle( movies, 'display', 'none');
	}
	
	var youtube = YAHOO.util.Dom.getElementsByClassName( 'wpv_video', 'div', root );
    if( youtube.length > 0) {
	    YAHOO.util.Dom.setStyle( youtube, 'display', 'none');
    }
}

YAHOO.santiago.showmovies = function( root ) {
	YAHOO.log( 'showmovies');
	if( root == null ) {
	    root = document.body;
    }
	else if( root[0] != null ) {
        root = root[0];
    }

	var movies = YAHOO.util.Dom.getElementsByClassName( 'embedded_quicktime', 'div', root );
	for( i in movies ) {
		if( YAHOO.santiago.checkVisiblePost( movies[i] ) ) {
			YAHOO.util.Dom.setStyle( movies[i], 'display', 'block');
		}
	}

	var youtube = YAHOO.util.Dom.getElementsByClassName( 'wpv_video', 'div', root );
    for( i in youtube ) {
		if( YAHOO.santiago.checkVisiblePost( youtube[i] ) ) {
	    	YAHOO.util.Dom.setStyle( youtube[i], 'display', 'block' );
		}
    }
}

YAHOO.santiago.checkVisiblePost = function( element ) {
	var found = false;
	var check = element;
	while( check.parentNode && !found ) {
		if( YAHOO.util.Dom.hasClass( check, 'post' ) ) {
			found = true;
		}
		else {
			check = check.parentNode;
		}
	}

	if( found ) {
		var status = YAHOO.util.Dom.getElementsByClassName( 'post-contracted', 'div', check );
		if( status && status[0] ) {
			return false;
		}
		else {
			return true;
		}
	}
	else {
		return false;
	}
}

YAHOO.santiago.init = function() {
	// set up the panel for showing large images
	if( !YAHOO.santiago.popup ) {
		YAHOO.santiago.popup = new YAHOO.widget.Panel( 'template_popup');
		YAHOO.santiago.popup.cfg.setProperty( 'fixedcenter', true);
		YAHOO.santiago.popup.cfg.setProperty( 'modal', true);
		YAHOO.santiago.popup.cfg.setProperty( 'constraintoviewport', true );
		//YAHOO.santiago.popup.cfg.setProperty( 'draggable', true );
		YAHOO.santiago.popup.cfg.setProperty( 'iframe', false );
		YAHOO.santiago.popup.cfg.setProperty( 'close', true );
		//YAHOO.santiago.popup.cfg.setProperty( 'underlay', 'none');
		//YAHOO.santiago.popup.cfg.setProperty( 'effect', {effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25});
		//YAHOO.santiago.popup.hide();
	}

	var images =  YAHOO.util.Dom.getElementsByClassName( 'template_image', 'a', document.getElementById( 'bd' ) );
	// In IE 6 we don't use popups but link to the image in a new page on click
	if( YAHOO.env.ua.ie < 7 && YAHOO.env.ua.ie > 0 ) {
		for( i in images ) {
			images[i].target = "_blank";
		}
	}
	else {	
		YAHOO.util.Event.addListener( images, "mouseover", YAHOO.santiago.show_popup_delayed);
		YAHOO.util.Event.addListener( images, "mouseout", YAHOO.santiago.clear_popup);
		YAHOO.util.Event.addListener( images, "click", YAHOO.santiago.show_popup);
		YAHOO.util.Event.addListener( "template_popup", "click", YAHOO.santiago.hide_popup);
	}

	// To solve crashes in IE6 we remove popups from png images
	/*if( YAHOO.env.ua.ie < 7 && YAHOO.env.ua.ie > 0 ) {
		for( i in images ) {
			var href = images[i].href;
			if( href ) {
				href = href.toLowerCase();
				if( href.substring( href.length - 4, href.length ) == ".png" ) {
				    YAHOO.util.Event.removeListener( images[i], "mouseover", YAHOO.santiago.show_popup_delayed);
				    YAHOO.util.Event.removeListener( images[i], "mouseout", YAHOO.santiago.clear_popup);
				    YAHOO.util.Event.removeListener( images[i], "click", YAHOO.santiago.show_popup);
					images[i].href = "javascript:void(null);";
				}
			}
		}
	}*/
	
	YAHOO.santiago.init_tooltips();
	YAHOO.santiago.yuiButtonInit( document.getElementById( 'doc' ), false );
	
	if( YAHOO.santiago.livefeed ) {
		YAHOO.santiago.showmovies();
	}
	else { 
		if( YAHOO.santiago_sidebar && YAHOO.santiago_sidebar.sidebar_init ) {
			YAHOO.santiago_sidebar.sidebar_init();
		}
		if( YAHOO.santiago.is_single ) {
			YAHOO.santiago.showmovies();
		}
	}
}

YAHOO.santiago.init_tooltips = function( root ) {
	if( root == null ) {
		root = document.getElementById( 'doc' );
	}

	var links = YAHOO.util.Dom.getElementsByClassName( 'yui_tooltip', 'a', root );
	YAHOO.santiago.links = new Array();
	for( i = 0; i < links.length; i ++ ) {
		if( links[i].title && links[i].title != "" ) {
			links[i].id = YAHOO.util.Dom.generateId();
			YAHOO.santiago.links[i] = new YAHOO.widget.Tooltip( "links[" + i + "]", { context: links[i].id, autodismissdelay: 999999 });
			//YAHOO.santiago.links[i].setHeader( "header");
			//YAHOO.santiago.links[i].setFooter( "footer");
		}
		else if( links[i].alt && links[i].alt != "" ) {
			links[i].id = YAHOO.util.Dom.generateId();
			YAHOO.santiago.links[i] = new YAHOO.widget.Tooltip( "links[" + i + "]", { context: links[i].id, autodismissdelay: 999999 } );
			//YAHOO.santiago.links[i].setHeader( "header");
			//YAHOO.santiago.links[i].setFooter( "footer");
		}
	}
	//alert( "done with the tooltips" );
}

YAHOO.santiago.do_nothing = function( e ) {
	YAHOO.util.Event.stopEvent(e);
}

YAHOO.santiago.show_popup_delayed = function( e ) {
	window.clearTimeout( YAHOO.santiago.timeout );
	var target = YAHOO.util.Event.getTarget(e, true);
	if ( target.tagName.toLowerCase() == 'img' ) {
		var img = target.parentNode.getAttribute('rel');
		YAHOO.santiago.popup.setBody( '<img src="'+img+'" alt="" />');
		YAHOO.santiago.timeout = window.setTimeout( "YAHOO.santiago.popup.show()", YAHOO.santiago.delay);
		YAHOO.santiago.timeout2 = window.setTimeout( "YAHOO.santiago.remove_flash()", YAHOO.santiago.delay);
		//alert( "timeout started" );
	}
	YAHOO.util.Event.stopEvent(e);
}

YAHOO.santiago.remove_flash = function() {
	var flash = document.getElementById( 'flash-spider' );
	if( flash ) {
		flash.style.display = "none";
	}
	YAHOO.santiago.hidemovies();
}

YAHOO.santiago.show_popup = function( e) {
	window.clearTimeout( YAHOO.santiago.timeout);
	var target = YAHOO.util.Event.getTarget(e, true);
	if ( target.tagName.toLowerCase() == 'img' ) {
		var img = target.parentNode.getAttribute('rel');
		YAHOO.santiago.popup.setBody( '<img src="'+img+'" alt="" />');

		/* used for display without delay, but we need a small delay
		   to allow for image loading */
		YAHOO.santiago.timeout = window.setTimeout( "YAHOO.santiago.popup.show()", 50);
		YAHOO.santiago.remove_flash();
	}
	YAHOO.util.Event.stopEvent(e);
}

YAHOO.santiago.hide_popup = function( e) {
	YAHOO.santiago.popup.hide();
	var flash = document.getElementById( 'flash-spider' );
	if( flash ) {
		flash.style.display = "block";
	}
	YAHOO.santiago.showmovies();
}

YAHOO.santiago.clear_popup = function( e ) {
	//alert( "timeout stop!" );
	var target = YAHOO.util.Event.getTarget(e, true);
	if ( target.tagName.toLowerCase() == 'img' ) {
		//alert( "timeout: " + YAHOO.santiago.timeout );
		window.clearTimeout( YAHOO.santiago.timeout );
		window.clearTimeout( YAHOO.santiago.timeout2 );
	}
	YAHOO.util.Event.stopEvent(e);
}

YAHOO.santiago.clickButton;
YAHOO.santiago.yuiButtonInitLogin = function() {
	YAHOO.santiago.yuiButtonInit( document.body );
}


YAHOO.santiago.yuiButtonInit = function( rootElement/*, dialogButtons*/ ) { 
	var button = Array();
	/*if( dialogButtons ) {
		var buttonGroup = YAHOO.util.Dom.getElementsByClassName( 'button-group', 'span', rootElement );
		for( i in buttonGroup ) {
			var buttonTmp = YAHOO.util.Dom.getElementsByClassName( '', 'button', buttonGroup[i] );
			if( button.length > 0 ) {
				button.concat( buttonTmp );
			}
			else {
				button = buttonTmp;
			}
		}
	}
	else {*/
		button = YAHOO.util.Dom.getElementsByClassName( 'make-yui-button', '', rootElement );
	//}
	
	/*
	 * Add footer links as buttons too
	*/
	var buttonGroup = YAHOO.util.Dom.getElementsByClassName( 'footer', 'div', rootElement );
    for( i in buttonGroup ) {
		var buttonTmp = YAHOO.util.Dom.getElementsByClassName( '', 'a', buttonGroup[i] );
		button = button.concat( buttonTmp );
	}
	
	if( !YAHOO.santiago.clickButton ) {
		YAHOO.santiago.clickButton = Array();
	}
	
	var startAt = Number( YAHOO.santiago.clickButton.length );
	for( i in button ) {
		i = Number( i );
		if( button[i].nodeName.toLowerCase() == 'a' ) {
			var title = button[i].getAttribute( 'title' );
			if( !title ) {
				title = "";
			}
			var label = button[i].innerHTML;
			if( !label || label == '' ) {
				label = '&nbsp;';
			}
			var action = button[i].getAttribute( 'onclick' );
			var url = "";
			if( !action || action == '' ) {
				url = button[i].getAttribute( 'href' );
				//YAHOO.santiago.clickButton[i + startAt] = action;
			}
			else {
				//YAHOO.santiago.clickButton[i + startAt] = action;
				//action = "javascript:" + action;
				url = "javascript:YAHOO.santiago.buttonClicked( 0, " + ( i + startAt ) + " );";
			}

			//var url = "javascript:YAHOO.santiago.buttonClicked( 0, " + ( i + startAt ) + " );";

			YAHOO.util.Dom.generateId( button[i].parentNode );
			var container_id = button[i].parentNode.id;
			button[i].parentNode.removeChild( button[i] );
			YAHOO.santiago.clickButton[i + startAt] = action;
			new YAHOO.widget.Button(
				{ type:"link", label: label, title: title, href: url, container: container_id }
            );
		}
		else {
			if( button[i].getAttribute( 'type' ) == 'submit' ) {
				new YAHOO.widget.Button( 
					button[i]
				);
			}
			else {
				YAHOO.util.Dom.generateId( button[i].parentNode );
             	var container_id = button[i].parentNode.id;
				var label = button[i].getAttribute( 'value' );
				button[i].parentNode.removeChild( button[i] );
				YAHOO.santiago.clickButton[i + startAt] = button[i].getAttribute( 'onclick' );
				
				new YAHOO.widget.Button(
	                { type: button, container: container_id, label: label, onclick: { fn: YAHOO.santiago.buttonClicked, obj: Number( i + startAt ) } }
	            );
			}
		}
	}
}

YAHOO.santiago.buttonClicked = function( e, i ) {
	/*
		Fuck you! Mister Internet Explorer...
	*/
	if( YAHOO.util.Event.isIE ) {
		eval( "var tmp = " + YAHOO.santiago.clickButton[i] + "; tmp();" );
	}
	else {
		eval( YAHOO.santiago.clickButton[i]);
	}
}

YAHOO.santiago.searchForChanged = function() {
	var searchFor = document.getElementById( 'search_type' );
	var perspective = document.getElementById( 'perspective' );
	if( searchFor.value != 'posts' ) {
		perspective.value = '';
		perspective.disabled = true;
	}
	else {
		perspective.disabled = false;
	}
}
