// JavaScript Document

var loc = "http://www.stevensnasdell.co.uk/clients/reliance"
// global request and XML document objects
var req;
var response;
var isIE = false;
var whichX
var whichNode
var whichImage
var maxImage
var popup = false;
// retrieve XML document (reusable generic function);
// parameter is URL string (relative or complete) to
// an .xml file whose Content-Type is a valid XML
// type, such as text/xml; XML source must be from
// same domain as HTML file

/*
function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {

        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
	
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send("");
        }
    }
}
*/
var inv;
function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object

    if (window.XMLHttpRequest) {

        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
		return;
    // branch for IE/Windows ActiveX version
    } 
	
	if(window.ActiveXObject ) {
		try {
			 isIE = true;
			req = new ActiveXObject("Microsoft.XMLHTTP");
			if (req) {
				req.onreadystatechange = processReqChange;
				req.open("GET", url, true);
				req.send("");
			}
			return
		} catch(e) {}
    }
	
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		//alert("here");
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'visible'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		inv = setInterval("check();",1000)
		ifr.innerHTML = '<iframe src="'+url+'" name="thing" height="0" width="0"><\/iframe>';
		document.body.appendChild(ifr);
		
		
		return;
	}
	return;
	
}

var req_responseXML =false;
function check(){
clearInterval(inv);
if ( window.frames['thing']){
//alert( window.frames['thing'].window.document.getElementsByTagName("dates").length );

req_responseXML = true;
//currentevent()
}else{
inv = setInterval("check();",1000)
}


/*
	if ( window.frames['thing'] ){
	clearInterval(inv);

	IFrameObj = window.frames['thing'];
	alert("kbhk"+IFrameObj)
	}
	*/


}
/*


if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'hidden'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		//onload only fires in Opera so I use a timer for all
		if( !window.MWJ_XML_timer ) { window.MWJ_XML_timer = window.setInterval('MWJ_checkXMLLoad();',100); }
		ifr.innerHTML = '<iframe src="'+oURL+'" name="MWJ_XML_loader_'+MWJ_ldD.length+'" height="0" width="0"><\/iframe>';
		MWJ_ldD[MWJ_ldD.length] = oFunct+'MWJ_SPLIT'+(oDelay?oDelay:1)+'';
		document.body.appendChild(ifr);
		return true;
	}
	return false;
}
function MWJ_checkXMLLoad() {
	//check if each imported file is available (huge files may not have loaded completely - nothing I can do - use the delay to help)
	for( var x = 0; x < MWJ_ldD.length; x++ ) { if( MWJ_ldD[x] && window.frames['MWJ_XML_loader_'+x] ) {
		setTimeout( MWJ_ldD[x].split('MWJ_SPLIT')[0] + '(window.frames.MWJ_XML_loader_'+x+'.window.document);', parseInt(MWJ_ldD[x].split('MWJ_SPLIT')[1]) );
		MWJ_ldD[x] = false;
	} }
}
*/
// handle onreadystatechange event of req object
function processReqChange() {
	//alert ( req.status )
    // only if req shows "loaded"
    if (req.readyState == 4 ) {
        // only if "OK"
        if (req.status == 200 ) {
         //   clearTopicList();
          //  buildTopicList();
		 
		  if (popup == true){
		  	popupLayout()
			return;
		  }
		   
			   var current = req.responseXML.getElementsByTagName("currentEvent");
			   var past = req.responseXML.getElementsByTagName("pastShows");
			   var forthcoming = req.responseXML.getElementsByTagName("forthcoming");
			   
			   if (current.length >0){
			   	currentevent();
				return;
			   }
			   if (past.length >0){
			  // alert ("pwoo");
			   	pastevent();
				return;
			   }
			   if (forthcoming.length >0){
			  // alert ("pwoo");
			   	forthcomingevent();
				return;
			   }
         } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
         }
    }
}
function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    if (prefix && isIE) {
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
            return result.firstChild.nodeValue;    		
        }
    } else {
        return "";
    }
}

function currentevent(){
	whichX = "current";
	//alert (response.getElementsByTagName('title')[0].firstChild.data)
	// div = document.getElementById("frame");
    // div.innerHTML = "";
    // blast new HTML content into "details" <div>
   // div.innerHTML = "hello"
   
 
    var opt = document.createElement("div");
	opt.id = "currentShow"
	var orig = document.getElementById("frame");
    orig.appendChild(opt);
	//
	var opt = document.createElement("div");
	opt.id = "times"
	var orig = document.getElementById("frame");
    orig.appendChild(opt);
	//
	var opt = document.createElement("div");
	opt.id = "pastShows"
	var orig = document.getElementById("frame");
    orig.appendChild(opt);
	//
	var opt = document.createElement("div");
	opt.id = "forthcoming"
	var orig = document.getElementById("frame");
    orig.appendChild(opt);
	//
		//if(req_responseXML!= false){
		//var what = window.frames['thing'].window.document.getElementsByTagName("event")
		//}else{
	var what = req.responseXML.getElementsByTagName("event")
	//}
	//alert ( window.frames['thing'].window.document.getElementsByTagName("event").data)
	
	//alert (window.frames['thing'].window.document.getElementsByTagName("event")[0].document.getElementsByTagName("dates")[0].firstChild.nodeValue )


	var artist = getElementTextNS("", "artist", what[0], 0);
	//alert (artist)
	var show = getElementTextNS("", "title", what[0], 0);
	var dates = getElementTextNS("", "dates", what[0], 0);
	var images = getElementTextNS("", "image", what[0], 0);
	var press = getElementTextNS("", "press", what[0], 0);
	if ( images != "" || press != ""){
	//whichNode
		var holdArt = artist;
		artist = ""
		artist += "<a href='#' onClick='openWindow(0)'>";
		artist += holdArt
		artist += "</a>";
	}
	//
	//
	
	
	document.getElementById("currentShow").innerHTML = "<img src='assets/currentShowLarge.gif' alt='Current Show' />" + artist +" : "+ show;
	document.getElementById("times").innerHTML ="<img src='assets/timesLarge.gif' alt='Times' />"+dates;
	document.getElementById("pastShows").innerHTML ="<img src='assets/pastShowsLarge.gif' alt='Past Shows' /><a href='pastshows.html'>Click here</a>"
	document.getElementById("forthcoming").innerHTML ="<img src='assets/forthcominglarge.gif' alt='Forthcoming' /><a href='forthcoming.html'>Click here</a>"
	//
	
}
function pastevent(){

whichX = "past";
	var what = req.responseXML.getElementsByTagName("event")
 	for (var i = 0; i < what.length; i++) {
      	var opt = document.createElement("div");
		opt.id = "entry"+i;
		var orig = document.getElementById("frame");
    	orig.appendChild(opt);
		//
		document.getElementById("entry"+i).className = "entry";
		var artist = getElementTextNS("", "artist", what[i], 0);
		var show = getElementTextNS("", "title", what[i], 0);
		var dates = getElementTextNS("", "dates", what[i], 0);
			var images = getElementTextNS("", "image", what[i], 0);
	var press = getElementTextNS("", "press", what[i], 0);
	if ( images != "" || press != ""){
	//whichNode
		var holdArt = artist;
		artist = ""
		artist += "<a href='#' onClick='openWindow("+i+")'>";
		artist += holdArt
		artist += "</a>";
	}
	//
		
		//
		document.getElementById("entry"+i).innerHTML += artist+"<br/>";
		document.getElementById("entry"+i).innerHTML += show+"<br/>";
		document.getElementById("entry"+i).innerHTML += dates;
			//<<a href="#">Gary Webb</a><br/>'The Dark Alliance'<br/>28th November 2005 - 01 January 2006, 11am - 6pm Tuesday - Saturday
    }
	document.getElementById("frame").innerHTML +="<br clear='all'/>"
//<a href="javascript:;" onClick="openBrWindow('popup.html','','toolbar=no,location=no,status=yes,menubar=yes,scrollbars=no,resizable=no,width=500,height=450')"></a>
}
function forthcomingevent(){

	whichX = "forthcoming";
	var what = req.responseXML.getElementsByTagName("event")
 	for (var i = 0; i < what.length; i++) {
      	var opt = document.createElement("div");
		opt.id = "entry"+i;
		var orig = document.getElementById("frame");
    	orig.appendChild(opt);
		//
		document.getElementById("entry"+i).className = "entry";
		var artist = getElementTextNS("", "artist", what[i], 0);
		var show = getElementTextNS("", "title", what[i], 0);
		var dates = getElementTextNS("", "dates", what[i], 0);
			var images = getElementTextNS("", "image", what[i], 0);
	var press = getElementTextNS("", "press", what[i], 0);
	if ( images != "" || press != ""){
	//whichNode
		var holdArt = artist;
		artist = ""
		artist += "<a href='#' onClick='openWindow("+i+")'>";
		artist += holdArt
		artist += "</a>";
	}
	//
		
		//
		document.getElementById("entry"+i).innerHTML += artist+"<br/>";
		document.getElementById("entry"+i).innerHTML += show+"<br/>";
		document.getElementById("entry"+i).innerHTML += dates;
			//<<a href="#">Gary Webb</a><br/>'The Dark Alliance'<br/>28th November 2005 - 01 January 2006, 11am - 6pm Tuesday - Saturday
    }
	document.getElementById("frame").innerHTML +="<br clear='all'/>"
//<a href="javascript:;" onClick="openBrWindow('popup.html','','toolbar=no,location=no,status=yes,menubar=yes,scrollbars=no,resizable=no,width=500,height=450')"></a>
}
function openWindow(pram) {
//alert(pram);
  window.open("popup.html?file="+whichX+"&node="+pram,"","toolbar=no,location=no,status=yes,menubar=yes,scrollbars=no,resizable=no,width=880,height=680");
}
function popupLayout(){
	document.getElementById("popupLinks").innerHTML += "<b>"
	var what = req.responseXML.getElementsByTagName("event")	
	var allimages = what[whichNode].getElementsByTagName("image")
	var loadFirst = false;
		for (var i = 0; i < allimages.length; i++) {
			if(i==0){
			loadFirst = true;
			
			}
			myName = "l"+i
		 	document.getElementById("popupLinks").innerHTML += "<a href='#' id='"+myName+"' onClick='loadImage("+i+")'><b>"+(i+1)+"</b></a>&nbsp;";
			if(i==29||i==59||i==89){
				document.getElementById("popupLinks").innerHTML +="<br/>"
			} 
			if ( allimages.length >= 0){
			maxImage = allimages.length
			}
		}
		
			
		var press = getElementTextNS("", "press", what[whichNode], 0);
		if ( press != "" ){
			document.getElementById("popupLinks").innerHTML += "<a href='#' id='presslink' onClick='loadPress()'><b>Press</b></a> ";
		}
		
		
		if ( maxImage >= 0){
		document.getElementById("popupLinks").innerHTML += "<br />"
		document.getElementById("popupLinks").innerHTML += "<a href='#' onClick='downImages()'><b><&nbsp;</b></a>";
		document.getElementById("popupLinks").innerHTML += "<a href='#' onClick='upImages()'><b>></b></a> ";
		}
		
		document.getElementById("popupLinks").innerHTML += "</b>"
    //    document.getElementById("popupLinks").innerHTML +=
		

if ( loadFirst ){
loadImage(0);
}else{
loadPress();
}
		//var opt = document.createElement("div");
		//opt.id = "scrollArea"
		//var orig = document.getElementById("popupbox");
    //	orig.appendChild(opt);
		//document.getElementById("scrollArea").innerHTML = press;
}
function upImages(){
	if ( whichImage < maxImage-1){
		loadImage(whichImage + 1)
	}else{
		loadImage(maxImage-1)
	}
	
}
function downImages(){
	if ( whichImage >0){
		loadImage(whichImage - 1)
	}else{
	loadImage(0)
	}
	
}
function loadImage(pram){
		whichImage = pram;
//alert("pram");
		var what = req.responseXML.getElementsByTagName("event")
		var allimages = what[whichNode].getElementsByTagName("images")[0];
		var ai = what[whichNode].getElementsByTagName("image")
		//COlOUR RED
		for (var i = 0; i < ai.length; i++) {
		 	myName = "l"+i
			
			if (i!=pram){
			document.getElementById(myName).className = "normal";
			}else{
			document.getElementById(myName).className = "redlink";
			}
		}
		
		
		var press = getElementTextNS("", "press", what[whichNode], 0);
		if ( press != "" ){
			document.getElementById("presslink").className = "normal";
		}
		
		var imageLoc = ""
		if (allimages.getElementsByTagName("image")[pram].attributes.getNamedItem("name") ){
		imageLoc = allimages.getElementsByTagName("image")[pram].attributes.getNamedItem("name").value; 
		}
		var imageLabel = ""
		if ( allimages.getElementsByTagName("image")[pram].firstChild ){
		imageLabel = allimages.getElementsByTagName("image")[pram].firstChild.nodeValue;
		} 
		//alert (imageLabel.toString());
		//
		document.getElementById("popupbox").innerHTML = ""
		var opt = document.createElement("div");
		opt.id = "imageArea"
		var optLabel = document.createElement("div");
		optLabel.id = "imageText"
		var orig = document.getElementById("popupbox");
    	orig.appendChild(opt);
		orig.appendChild(optLabel);
		if (imageLoc.indexOf(".mov")!=-1){
		document.getElementById("imageArea").innerHTML = "<object width='360' height='270' classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' codebase='http://www.apple.com/qtactivex/qtplugin.cab'><param name='src' value='images/"+imageLoc+"'><param name='controller' value='true'><param name='autoplay' value='false'><param name='scale' value='tofit'><embed src='images/"+imageLoc+"' width='360' height='270' autoplay='false' controller='true' scale='tofit' pluginspage='http://www.apple.com/quicktime/download/'></embed></object>";
		}else{
		document.getElementById("imageArea").innerHTML = "<img src=images/"+imageLoc+".jpg alt='"+imageLabel+"'/>";
		}
		document.getElementById("imageText").innerHTML = imageLabel;
		//
}
function loadPress(){
	
		var what = req.responseXML.getElementsByTagName("event")
		var ai = what[whichNode].getElementsByTagName("image")
		//COlOUR RED
		for (var i = 0; i < ai.length; i++) {
		 	myName = "l"+i
			document.getElementById(myName).className = "normal";
		}
		document.getElementById("presslink").className = "redlink";
		//
		var press = getElementTextNS("", "press", what[whichNode], 0);
		
		document.getElementById("popupbox").innerHTML = ""
		var opt = document.createElement("div");
		opt.id = "scrollArea"
		var orig = document.getElementById("popupbox");
    	orig.appendChild(opt);
		document.getElementById("scrollArea").innerHTML = press;
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
}
function loadCurrent(){
//whichXML = "xmlfiles/current.xml";
	loadXMLDoc("xmlfiles/current.xml");
}
function loadPast(){
//whichXML = xmlfiles/past.xml";

	loadXMLDoc("xmlfiles/past.xml");
}
function loadForth(){
//whichXML = xmlfiles/past.xml";

	loadXMLDoc("xmlfiles/forthcoming.xml");
}
function loadPop(){
popup = true;
whichNode = getQueryVariable("node") * 1;
whichImage = 0
maxImage = -1
loadXMLDoc("xmlfiles/"+getQueryVariable("file")+".xml");
}