/* direct home js MJF 174/10/2008 */

/* author: Simon Willisons - http://simon.incutio.com/archive/2004/05/26/addLoadEvent */
function addLoadEvent(f){var o=window.onload;if(typeof window.onload!='function'){window.onload=f}else{window.onload=function(){o();f()}}}

// jsCSS(action,object,class1,class2) -  className: swap, add, remove, check or toggle - author: Christian Heilmann - http://www.onlinetools.org/articles/unobtrusivejavascript/cssjsseparation.html
function jsCSS(a,o,c1,c2){switch(a){case'swap':o.className=!jsCSS('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);break;case'add':if(!jsCSS('check',o,c1)){o.className+=o.className?' '+c1:c1};break;case'remove':var rep=o.className.match(' '+c1)?' '+c1:c1;o.className=o.className.replace(rep,'');break;case'check':return new RegExp('\\b'+c1+'\\b').test(o.className);break;case'toggle':if(jsCSS('check',o,c1)){jsCSS('remove',o,c1)}else{jsCSS('add',o,c1)};break}return false}

/* author: mike foskett - http://webSemantics.co.uk/ */
function $id(id){return(document.getElementById(id)?document.getElementById(id):false)}
function idExists(id){return($id(id)?true:false)}
function replaceContent(id,content){if(idExists(id))$id(id).innerHTML=content}
function isDom(){return (document.getElementById && document.getElementsByTagName)?true:false}
function setOpacity(id,op){var o=$id(id).style;o.opacity=op/100;o.MozOpacity=op/100;o.KhtmlOpacity=op/100;o.filter="alpha(opacity="+op+")"}

function popOff(id){
	// close pop-up: reset opacity=0; remove displayClass (.show)
	setOpacity(id,90);
	for(var o=0;o<100;o+=30){
	  setTimeout("setOpacity('"+id+"',"+(90-o)+")",o*2);
	}
	setTimeout('jsCSS("remove",$id("'+id+'"),"'+$id(id).displayClass+'")',o*2);
}

function popup(idName,linkId,displayClass,closeLinkClass,closeGraphicSrc){
	// add close link to popup div
	$id(idName).innerHTML='<a href="#" onclick="popOff(\''+idName+'\');return false;" class="'+closeLinkClass+'"><img src="'+closeGraphicSrc+'" title="" alt="Close window" /></a>'+$id(idName).innerHTML;
	// attach display class name to div object
	$id(idName).displayClass=displayClass;
	// attach div id name to the link object
	$id(linkId).idName=idName;
	// add popup toggle to anchor link
	$id(linkId).onclick=function(){
		// toggle via css class of displayClass (.show)
		var divObj=$id(this.idName);
		if (jsCSS('check',divObj,divObj.displayClass)) var show=true;
		if (!show){
			setOpacity(this.idName,0);
			for(var o=0;o<101;o+=25){
			  var op=(o>90)?90:o;
			  setTimeout("setOpacity('"+divObj.id+"',"+op+")",o*2);
			}
			jsCSS('add',divObj,divObj.displayClass);
		}else{
			popOff(this.idName);
		}
		return false;
	}
}

function start(){
/* Example CSS usage:
.hasJS #tc {display:none; position:absolute; top:90px; left:35px; width:350px; height:auto; _height:1%; padding:0.5em 1em; border:1px solid #a61319; background:#faeccf}
.hasJS #tc.show {display:block}
.hasJS #tc a {position:absolute; top:0; right:0; margin:0} - ".close" link

#tc needs to be inside a positioned container with layout.

*/
	/*				   popup(id of div to fade / popup, 
								  id of the activating link,
										   class to apply to display div, 
										          class of the close link, 
														  location of the close graphic); */
	var mypopup1 = new popup("tc","tcLink","show","close","/p/i/directhome1/close.gif");
}


// required to prevent unstyled content flashing up as JS kicks in
document.documentElement.className="hasJS";

if (isDom()){addLoadEvent(start)}
