/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var bustcachevar=1; //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects="";
//var rootdomain="http://"+window.location.hostname;
var bustcacheparameter="";

var strFrameName;
var strPath;
var strWildcards;
var strDynamicFrameDIV;
var strCSS;

var objAjax;

var boolFileArrived = false;

function dynamicDIV(strDynamicFrameDIV, strDIV_ID, strCSS)
{
	var objNewDIV = document.createElement("DIV");
	objNewDIV.setAttribute("id", strDIV_ID);
	document.getElementById(strDynamicFrameDIV).appendChild(objNewDIV);
	var strURL = '/content/' + strDIV_ID + '.htm';
	ajaxpage(strURL, strDynamicFrameDIV);
	
	if ( strCSS == null )
		loadobjs('/css/pi-style.css');
	else
		loadobjs(strCSS);
}

function dynamicHTML_DIV(strDynamicFrameDIV, strURL, strCSS, boolClearPageBeforeDraw, strTrailingHTML)
{
	// changed 07/07/2007#MA
	//ajaxpage(strURL, strDynamicFrameDIV, boolClearPageBeforeDraw, strTrailingHTML);
	getDynamicURL(strURL, strDynamicFrameDIV, boolClearPageBeforeDraw, strTrailingHTML);
	
// changed 30/06/2007#MA
/*	if ( strCSS == null )
		loadobjs('/css/pi-style.css');
	else
		loadobjs(strCSS);
*/
	if ( strCSS != null )
		loadobjs(strCSS);
}

function setDynamicFrame(strURL)
{
	setDynamicContent('divDynamicFrame', strURL);
}

function setDynamicContent(strDynamicDIV, strURL)
{
	dynamicHTML_DIV(strDynamicDIV, strURL, null, true, '');
}

/*
function ajaxpage(strURL, strDIV_ID, boolClearPageBeforeDraw, strTrailingHTML)
{
	var page_request = false;
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else if (window.ActiveXObject)
	{ // if IE
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else
		return false;
	
	page_request.onreadystatechange=function()
	{
		loadpage(strURL, page_request, strDIV_ID, boolClearPageBeforeDraw, strTrailingHTML);
	}
	
	if (bustcachevar) //if bust caching of external page
		bustcacheparameter=(strURL.indexOf("?")!=-1) ?  "&" + new Date().getTime() : "?" + new Date().getTime();
		
	page_request.open('GET', strURL + bustcacheparameter, true);
	page_request.send(null);
}
*/
// changed 07/07/2007#MA
//function ajaxpage(strURL, strDIV_ID, boolClearPageBeforeDraw, strTrailingHTML)
function getDynamicURL(strURL, strDIV_ID, boolClearPageBeforeDraw, strTrailingHTML)
{
	if (bustcachevar) //if bust caching of external page
		bustcacheparameter=(strURL.indexOf("?")!=-1) ?  "&" + new Date().getTime() : "?" + new Date().getTime();
	objAjax = new ajaxObject(strURL, gotDynamicURL);
	objAjax.update(bustcacheparameter, 'GET');

	
	function gotDynamicURL(responseText, responseStatus, responseXML)
	{
		if (responseStatus == 200)
		{
			if ( boolClearPageBeforeDraw )
			{
				document.getElementById(strDIV_ID).innerHTML = '';
			}
			// changed 06/08/2007#MA
			//document.getElementById(strDIV_ID).innerHTML += responseText + strTrailingHTML;
			writeDivHTML(responseText + strTrailingHTML, strDIV_ID);
			
			boolFileArrived = true;
			
			var intStartTagPos = responseText.indexOf("[[38C:");
													
			while (intStartTagPos > -1)
			{
				var intEndTagPos = responseText.indexOf("]]", intStartTagPos + 6)
				if (intEndTagPos > -1)
				{
					strTagCode = responseText.substring(intStartTagPos + 6, intEndTagPos) ;
					eval(strTagCode);
				}
				intStartTagPos = responseText.indexOf("[[38C:", intEndTagPos);
			}
		}
	}
}

// changed 09/08/2007#MA added optional New - i.e. don't add
/*function writeDivHTML(strHTML, strDIV_ID)
{
	if (strDIV_ID == null)
		document.write(strHTML);
	else
		document.getElementById(strDIV_ID).innerHTML += strHTML;
}
*/function writeDivHTML(strHTML, strDIV_ID, optBoolNew)
{
	if (strDIV_ID == null)
		document.write(strHTML);
	else
	{
		if (optBoolNew)
			document.getElementById(strDIV_ID).innerHTML = strHTML;
		else
			document.getElementById(strDIV_ID).innerHTML += strHTML;
	}
}

function Test(strMessage)
{
	if (strMessage)
		alert('[[38C: = ' + strMessage + ']]');
}

function gotFiles(responseText, responseStatus, responseXML)
{
	if (responseStatus == 200)
	{
		var strXML = responseText;

		if (strXML != null)
		{
			try
			{
				var objXML = (new DOMParser()).parseFromString(strXML, "text/xml");
				displayFiles(objXML);
			}
			catch (e)
			{
				alert('Problem parsing some file name/s in directory [' + strPath + ']\nThis is the XML:-\n' + strXML);
			}
		}
		else
		{
			alert(' -- Error Processing Request -- Code = ' + responseStatus);
		}
	}
}

/*
function loadpage(strURL, page_request, strDIV_ID, boolClearPageBeforeDraw, strTrailingHTML)
{
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
	{
		if ( boolClearPageBeforeDraw )
		{
			document.getElementById(strDIV_ID).innerHTML = '';
		}
		document.getElementById(strDIV_ID).innerHTML += page_request.responseText + strTrailingHTML;
		boolFileArrived = true;

		// check for .js
		var strFileJS = strURL.replace(".htm", ".js");
		try
		{
			loadobjs(strFileJS);
		}
		catch(e)
		{
		}
	}
}
*/

function loadobjs()
{
	if (!document.getElementById)
		return;
		
	for (i=0; i<arguments.length; i++)
	{
		var strFile = arguments[i];
		
		//Check to see if this object has not already been added to page before proceeding
		if (loadedobjects.indexOf(strFile) == -1)
		{ 
			if (loadObj(strFile) )
				loadedobjects += strFile + " "; //Remember this object as being already added to page
		}
	}
}

function loadObj(strFile)
{
	var strFileRef = "";
	if (strFile.indexOf(".js") != -1)
	{ //If object is a js file
		strFileRef = document.createElement('script');
		strFileRef.setAttribute("type","text/javascript");
		strFileRef.setAttribute("src", strFile);
	}
	else if (strFile.indexOf(".css") != -1)
	{ //If object is a css file
		strFileRef = document.createElement("link");
		strFileRef.setAttribute("rel", "stylesheet");
		strFileRef.setAttribute("type", "text/css");
		strFileRef.setAttribute("href", strFile);
	}

	
	if (strFileRef != "")
	{
		document.getElementsByTagName("head").item(0).appendChild(strFileRef);
		return true;
	}
	return false;
}

function getFiles(strPath) {
  // Clear the curent request
  request = false;

  // Generate the request object and handle different browsers:
  if (window.XMLHttpRequest)
  { // Mozilla & other compliant browsers
   	request = new XMLHttpRequest();
  }
  else if (window.ActiveXObject)
  { // Internet Explorer
    request = new ActiveXObject("Microsoft.XMLHTTP");
  }

  // If we don't have a request object, then error out.
  if (!request)
  {
    alert('Browser does not support AJAX!');
    return false;
  }

  // Ok, now we are ready. Make the request, and tell it to run the
  // function 'updateDate' when it gets data back.
  request.onreadystatechange = updateDate;

  // Open the connection, sending the current value of the form element:
  request.open('GET', 'GetFiles.php?path=' + strPath, true);
  request.send(null);
}

// The function that will accept the data, and update the page:
function updateDate() {
  // Make sure that the state is '4', which means finished:
  if (request.readyState == 4)
  {
    // Make sure that the status is 200, or 'ok'
      if (request.status == 200)
	  {
        // If so, read the result back in as XML:
        var xml = request.responseXML;

      // Now, parse the 'result' out of the XML:
      ////var result = xml.getElementsByTagName('result').item(0);

      // And now, update the text on the page:
      ////var text = document.getElementById('datetext');
      ////text.innerHTML = result.firstChild.data;


    }
	else
	{
      alert('Error performing request!' + request.status);
    }
  }
}

function loadURLs(pstrFrameName, pstrPath, pstrWildcards, pstrCSS)
{
	//parent.frames[strFrameName].setDynamicFrame(strURL);
	strFrameName = pstrFrameName;
	strPath = pstrPath;
	strWildcards = pstrWildcards;
	strDynamicFrameDIV = pstrFrameName;
	strCSS = pstrCSS;
	
	getContentFiles();
}


function getContentFiles()
{
	asyncGetFiles(strPath, strWildcards, gotFiles);
}

function gotFiles(responseText, responseStatus, responseXML)
{
	if (responseStatus == 200)
	{
		var strXML = responseText;

		if (strXML != null)
		{
			try
			{
				var objXML = (new DOMParser()).parseFromString(strXML, "text/xml");
				displayFiles(objXML);
			}
			catch (e)
			{
				alert('Problem parsing some file name/s in directory [' + strPath + ']\nThis is the XML:-\n' + strXML);
			}
		}
		else
		{
			alert(' -- Error Processing Request -- Code = ' + responseStatus);
		}
	}
}

function displayFiles(objXML)
{
	var aFiles = aExtractFiles(objXML);
	randomiseArray( aFiles );
	
	boolFileArrived = false;
	for (var intFile = 0; intFile < aFiles.length && !boolFileArrived; intFile++ )
	{
		//dynamicHTML_DIV(strDynamicFrameDIV, aFiles[intFile], null, false, '<p><hr></hr><p>');
		//parent.frames[strFrameName].dynamicHTML_DIV(strDynamicFrameDIV, aFiles[intFile], null, (intFile == 0), '');
		boolFileArrived = false;
		dynamicHTML_DIV(strDynamicFrameDIV, aFiles[intFile], '/css/pi-style.css', (intFile == 0 ? true : false), '<p><hr></hr><p>');
	}
}

function loadDirectoryHTML(strFrameName, strPath)
{
	loadDirectory(strFrameName, strPath, '*.htm,*.html');
}

function loadDirectory(strFrameName, strPath, strWildcards)
{
	loadURLs(strFrameName, strPath, strWildcards, '/css/pi-style.css');
}

function loadFrameURL(strFrameName, strURL)
{
	//parent.frames[strFrameName].setDynamicFrame(strURL);
	setDynamicContent(strFrameName, strURL);
}

/*
Text Link/Image Map Tooltip Script- 
© Dynamic Drive (www.dynamicdrive.com)
For full source code, and 100's more DHTML scripts
Visit http://www.dynamicdrive.com
*/

if (!document.layers&&!document.all&&!document.getElementById)
	event="test";
function showToolTip(current,e,text)
{

	if (document.all || document.getElementById)
	{
		thetitle=text.split('<br>');
		if (thetitle.length > 1)
		{
			thetitles = '';
			for (i = 0; i < thetitle.length; i++)
				thetitles += thetitle[i];
			current.title = thetitles;
		}
		else
			current.title = text;
	}
	
	else if (document.layers)
	{
		document.tooltip.document.write('<layer bgColor="white" style="border:1px solid black;font-size:12px;">'+text+'</layer>');
		document.tooltip.document.close();
		document.tooltip.left = e.pageX + 5;
		document.tooltip.top = e.pageY + 5;
		document.tooltip.visibility = "show";
	}
}

function hideToolTip()
{
	if (document.layers)
		document.tooltip.visibility = "hidden";
}


