function getId(objectId){if(document.all && !document.getElementById){return document.all(objectId)}else{return document.getElementById(objectId)}}

// ajax loader
function loadData(phpLoader,data,targetID){
	//alert(data);
	var target = getId(targetID);
    var xhr; 
	if(window.XMLHttpRequest){     // Object of the current windows 
		xhr = new XMLHttpRequest();     // Firefox, Safari, ...
	}else if(window.ActiveXObject){   // ActiveX version
		xhr = new ActiveXObject("Microsoft.XMLHTTP");  // Internet Explorer 
	}
	xhr.onreadystatechange = function(){ // instructions to process the response
		if (xhr.readyState == 4){// Received, OK
			var myData = xhr.responseText;
			target.innerHTML = myData;
			
			// eval Javascript loaded in ajax
			evalJS(myData);
			// add hash to URL to enalble deep linking to diplayed file. works for _media and _related.
			//hashDeepLink(data); 
		}else{
			target.innerHTML='&nbsp;';
		}
	}
	xhr.open('GET', phpLoader+'?data='+data, true);
	xhr.send(null);
}

// eval javascript so that it is actually executed (for swfOject and quickTime Object script embed methods, as well as documnet.write used for scrollpane)
function evalJS(myData){
	var pattern = /<script type="text\/javascript">[\S\s]*?<\/script>/;
	var myMatch = myData.match(pattern);
	if(myMatch!=null){
		var theJS = myMatch[0].replace('<script type="text/javascript">','');
		theJS = theJS.replace("</script>","");
		eval(theJS);
	}
}

// add hash to URL to enable deep linking to AJAX loaded file.
function hashDeepLink(fileURL){ //alert(fileURL)
	var url = location.href; //alert(url);
	// detect if already a Hash, keep only part of url before hash
	if(url.indexOf("#")!==-1){
		var splitHash=url.split("#");
		url=splitHash[0];
	}
	//alert("URL:\n"+url+"\n\nfileURL:\n"+fileURL);
	//var fileMatch = fileURL.split("/");
	//var file = fileMatch[fileMatch.length-1];
	window.location = url+'#'+fileURL;
}

// load proper data if page loaded with ash (allows bookmarking ajax loaded sub sections)
function ashLoadDetect(loader,target){
	var url = location.href; //alert(url);
	// detect if already a Hash, keep only part of url before hash
	if(url.indexOf("#")!==-1){
		var splitHash=url.split("#");
		ash=splitHash[1];
		//var fileMatch = ash.split("/");
		//var file = fileMatch[fileMatch.length-1];
		
		//alert(num);
		loadData(loader,ash,target);
		ashSelectMenu(ash);
	}
}

function ashSelectMenu(ash){
	var ashBits = ash.split("/");
	var path='';
	var file='';
	var myDl = getId('dl1');
	if(ashBits.length>1){
		path = ashBits[0]; //alert(path);
		file = ashBits[ashBits.length-1]; //alert(file);
		var dtArray=myDl.getElementsByTagName('dt');
		var ddArray=myDl.getElementsByTagName('dd');
		var arrayLength=dtArray.length; //alert(arrayLength);
		for(i=0;i<arrayLength;i++){
			var myHref = dtArray[i].firstChild.href;
			var hrefBits = myHref.split("?p=");
			var p = hrefBits[1];
			//alert(p);
			if(p==path){
				dtArray[i].className='selected';
				dtArray[i].firstChild.className='selected';
				ddArray[i].className='selected';
				var aArray=ddArray[i].getElementsByTagName('a');
				for(z=0;z<aArray.length;z++){
					var aHref = aArray[z].href;
					var ahrefBits = aHref.split("?p=");
					var ap = ahrefBits[1];
					if(ap==path+'%2F'+file){
						aArray[z].className='selected';
					}else{
						aArray[z].className='bla';
					}
				}
			}else{
				dtArray[i].className='bla';
				dtArray[i].firstChild.className='bla';
				ddArray[i].className='bla';
			}
			
		}
	}else{
		var ddArray=myDl.getElementsByTagName('dd');
		var dtArray=myDl.getElementsByTagName('dt');
		var arrayLength=dtArray.length; //alert(arrayLength);
		for(i=0;i<arrayLength;i++){
			var myHref = dtArray[i].firstChild.href;
			var hrefBits = myHref.split("?p=");
			var p = hrefBits[1];
			//alert(p);
			if(p==ash){
				ddArray[i].className='selected';
				dtArray[i].className='selected';
				dtArray[i].firstChild.className='selected';
			}else{
				ddArray[i].className='bla';
				dtArray[i].className='bla';
				dtArray[i].firstChild.className='bla';
			}
		}
	}
		
	//var num = ash.match(/^\d\d/);
	//num=num*1;
	//toogleList(num-1,'dl1');
}

// accordion list
function toogleList(num,target){
	var myDl=getId(target);
	var ddArray=myDl.getElementsByTagName('dd');
	var dtArray=myDl.getElementsByTagName('dt');
	var arrayLength=ddArray.length;
	for(i=0;i<arrayLength;i++){
		if(i==num){
			ddArray[i].className='selected';
			dtArray[i].className='selected';
			dtArray[i].firstChild.className='selected';
		}else{
			ddArray[i].className='bla';
			dtArray[i].className='bla';
			dtArray[i].firstChild.className='bla';
		}
	}
}
// sub accordion list
function toogleSublist(num,target){
	var myDd=getId(target);
	var aArray=myDd.getElementsByTagName('a');
	var arrayLength=aArray.length;
	for(i=0;i<arrayLength;i++){
		if(i==num){
			aArray[i].className='selected';
		}else{
			aArray[i].className='bla';
		}
	}
}
// init accordion list
function initSublist(target){
	var myDd=getId(target);
	var aArray=myDd.getElementsByTagName('a');
	var arrayLength=aArray.length;
	for(i=0;i<arrayLength;i++){
		aArray[i].className='bla';
	}
}


// highlight selected link in nav series 
function selectedLink(el,target){//alert('yey');
	var allA = document.getElementById(target).getElementsByTagName('a');
	var aLength = allA.length;
	//alert('yey');
	//alert(aLength);
	for(var i=0;i<aLength;i++){
		if(allA[i].className=='selected'){allA[i].className='visited';}
	}
	el.className = 'selected';
}

// PREVIOUS NEXT ARROWS
function previousNext(pn,target){
	var x=0;
	var allA = document.getElementById(target).getElementsByTagName('a');
	var aLength = allA.length;
	// get currently selected link
	for(var i=0;i<aLength;i++){
		if(allA[i].className=='selected'){
			allA[i].className='visited';
			x = i;
		}
	}
	// set previous or next
	if(pn=='previous'){
		if(x>0){var selA = allA[x-1];}else{var selA = allA[aLength-1];}
	}else{
		if(x<aLength-1){var selA = allA[x+1];}else{var selA = allA[0];}
	}
	// get and eval link loaData onClick function call
	var mClick=selA.getAttribute("onClick"); // get onClick attribute of link
	clickFuncArray = mClick.split(";"); // split onClick functions - we want the first one: loadData()
	eval(clickFuncArray[0]);
	//alert(clickFuncArray[1]);
	eval(clickFuncArray[1]);
	// update nav selected link
	selectedLink(selA,target);
}

// My Lightbox
function  myLightbox(img,marginHeight){
	getId('lightBox').style.display='block';
	getId('lightBox').innerHTML='<img src="'+img+'" style="margin-top:'+marginHeight+'px">';
}


// function to resize flv player at runtime (the function is called from flav_player.swf)
function resizeFlash(myWidth,myHeight){
	if(flashDiv=getId("flashMovie")){
		flashDiv.setAttribute("width",myWidth);
		flashDiv.setAttribute("height",myHeight);
		//alert(myWidth+'-'+myHeight);
	}	
}
