/*
Legacy code taken from http://www.discoverireland.com/gb/template_resources/js/image_functions.js
and adapted to work in new page templates and make use of Mootools
*/
// if IE5.5+ on Win32, then display PNGs with AlphaImageLoader
if ( window.ie && !window.ie6 && !window.ie7 ) {
	var pngAlpha = false;
} else {
	var pngNormal = true;
}

// Image pop-up

function toggleShowHide(element) {
	var selectedElement = $(element);
	var elementToggle = selectedElement.getAttribute("toggle");
	if(elementToggle == "on"){
		selectedElement.style.display = "none";
		selectedElement.setAttribute("toggle", "off");
		if(element == "myVisitDetails"){
			var myIrelandTabControlElement = $("myIrelandTabControl");
			myIrelandTabControlElement.innerHTML = "Open";
		}
	} else {
		selectedElement.style.display = "block";
		selectedElement.setAttribute("toggle", "on");
		if(element == "myVisitDetails"){
			var myIrelandTabControlElement = $("myIrelandTabControl");
		  	myIrelandTabControlElement.innerHTML = "Close";
		}
	}
}


function show(element) {
	var selectedElement = $(element);
	selectedElement.style.display = "block";
	selectedElement.setAttribute("toggle", "on");
}

function hide(element) {
	var selectedElement = $(element);
	selectedElement.style.display = "none";
	selectedElement.setAttribute("toggle", "off");
}

function URLencode(sStr) {
    return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}


function setObjInnerText(obj,txt){
	// Changed to use mootools browser detect
  if (window.ie)
    obj.innerText=txt;
  else
    obj.textContent=txt;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; 
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){
   	document.MM_sr[j++]=x;
   	if (pngAlpha && a[i] == "map") {
   		x.src= a[i+2];

   	} else {
   	if(!x.oSrc) 
   		x.oSrc=x.src; 
   	x.src=a[i+2];
  }
   }
}

// Function currently used to center magnification popup
function centerElement(element) {	
	var scrolledLeft = window.getScrollLeft();
	var scrolledTop = window.getScrollTop();
	
	//var leftPos = ((window.getWidth()/2)-16)-200 ;
	var topPos = (((window.getHeight()/2)-16)-210) + scrolledTop;
	var leftPos = 100;
	var topPos = topPos-200;
	
	var elm = $(element);
	elm.style.left = leftPos + "px";	
	elm.style.top = topPos + "px";
	elm.style.display = "block";
}

function MI_changeImage(MInum,imageID,descID,titleID,nameID,locationID,hrefID,mapID) {
	var i,j=0,x,a=MI_changeImage.arguments;
	var image = $(imageID);
	var desc = $(descID);
	var title = $(titleID);
	var name = $(nameID);
	var location = $(locationID);
	var href = $(hrefID);
	var map = $(mapID);

	if (image != null) {
		if (SS_Info[MInum][6] != "") {
			image.src=SS_Info[MInum][6];
		} else {
			image.src=SS_Info[MInum][5];
		}
		image.alt=SS_Info[MInum][1];
	}
	if (desc != null){
		setObjInnerText(desc,SS_Info[MInum][0]);
	}
	if (title != null){
		setObjInnerText(title,SS_Info[MInum][7]);
	}
	if (name != null){
		setObjInnerText(name,SS_Info[MInum][9]);
	}
	if (location != null){
		setObjInnerText(location,SS_Info[MInum][10]);
	}
	if (href != null){
		href.href=SS_Info[MInum][8];
	}
	if (map != null){
		if (SS_Info[MInum][11] != "")	{
			map.src=SS_Info[MInum][11];
		} else {
			map.src="images/image_popup/maps/holding_map.gif";
		}
	}

	var toMyIreland = $("toMyIrelandImagePopup");
	if (toMyIreland != null && toMyIreland.innerHTML) {
		toMyIreland.innerHTML = "<a href=\"?my=" + URLencode("/gb/picture/?jImg=" + URLencode(SS_Info[MInum][11]) + "&jAlt=" + URLEncode(SS_Info[MInum][1])) + "\">+ To My Ireland</a>";
	}

	if (document.EmailThisImage) {
		document.EmailThisImage.imageFilename.value = SS_Info[MInum][11];
		document.EmailThisImage.imageName.value = SS_Info[MInum][1];
	}
}

function M2_changeImage(arrayNum,MInum,imageID,descID,titleID,nameID,locationID,hrefID,mapID) {
	var i,j=0,x,a=MI_changeImage.arguments;
	var image = $(imageID);
	var desc = $(descID);
	var title = $(titleID);
	var name = $(nameID);
	var location = $(locationID);
	var href = $(hrefID);
	var map = $(mapID);
	if (image != null) {
		if (S2_Info[arrayNum][MInum][6] != "") {
			image.src=S2_Info[arrayNum][MInum][6];
		} else {
			image.src=S2_Info[arrayNum][MInum][5];
		}
		image.alt=S2_Info[arrayNum][MInum][1];
	}
	if (desc != null){
		setObjInnerText(desc,S2_Info[arrayNum][MInum][0]);
	}
	if (title != null){
		setObjInnerText(title,S2_Info[arrayNum][MInum][7]);
	}
	if (name != null){
		setObjInnerText(name,S2_Info[arrayNum][MInum][9]);
	}
	if (location != null){
		setObjInnerText(location,S2_Info[arrayNum][MInum][10]);
	}
	if (href != null){
		href.href=S2_Info[arrayNum][MInum][8];
	}
	if (map != null){
		if (S2_Info[arrayNum][MInum][11] != "")	{
			map.src=S2_Info[arrayNum][MInum][11];
		} else {
			map.src="images/image_popup/maps/holding_map.gif";
		}
	}

	var toMyIreland = $("toMyIrelandImagePopup");
	if (toMyIreland != null && toMyIreland.innerHTML) {
		var url = "?my=" + URLencode("/gb/picture/?jImg=" + URLencode(S2_Info[arrayNum][MInum][6]) + "&jAlt=" + URLencode(S2_Info[arrayNum][MInum][1])) + "&n=" + URLencode(S2_Info[arrayNum][MInum][1]);
		toMyIreland.innerHTML = "<a href=\"" + url + "\">+ To My Ireland</a>";
	}

	if (document.EmailThisImage) {
		document.EmailThisImage.imageFilename.value = S2_Info[arrayNum][MInum][6];
		document.EmailThisImage.imageName.value = S2_Info[arrayNum][MInum][1];
	}
}

function M2_magnify(arrayNum, MI_number) {
	centerElement('magnifyImagePopup');
	M2_changeImage(arrayNum,MI_number,'magnifyImage','imagePopupDesc','imagePopupTitle','pictureName','locationName','imagePopupHref','imagePopupMap');
	return false;
}

// Slideshow

var S2_number = new Array();
var S2_state = 0;
var S2_Info = new Array();
var S2_delay = 5000;

function S2_magnify(arrayNum)
{
	if (S2_number[arrayNum] == null) {
		S2_number[arrayNum]=0;
	}
	M2_magnify(arrayNum,S2_number[arrayNum])
	return false;
}

var S2_number = new Array();
var S2_state = 0;
var S2_Info = new Array();
var S2_delay = 5000;

function S2_changeImage(imageID,imageSrc,imageAlt,descID,descTxt,noOfID,noOfTxt) {
	var i,j=0,x,a=S2_changeImage.arguments;
	
	var image = $(imageID);
	var desc = $(descID);
	var noOf = $(noOfID);
	
	if (image != null) {
		image.src=imageSrc;
		image.alt=imageAlt;
	}
	
	if (desc != null){
		setObjInnerText(desc,descTxt);
	}
	
	if (noOf != null){
		setObjInnerText(noOf,noOfTxt);
	}

	return false;
}

function S2_start() {
	setTimeout("S2_next(1,true)", S2_delay);
	return false;
}

function S2_next(arrayNum,firstCall)
{
	if (firstCall) {
		S2_state = 1;
		
		if (S2_number[arrayNum] == null) {
			S2_number[arrayNum] = 0;
		}
	}
	if (S2_state == 1)
	{
		S2_number[arrayNum]++;
		
		if (S2_number[arrayNum]>S2_Info[arrayNum].length-1)
			S2_number[arrayNum]=0;
			
		S2_changeImage('slideShowImage'+arrayNum,S2_Info[arrayNum][S2_number[arrayNum]][5],S2_Info[arrayNum][S2_number[arrayNum]][1],
			'description'+arrayNum,S2_Info[arrayNum][S2_number[arrayNum]][0],
			'numberOf'+arrayNum,
			""+(S2_number[arrayNum]+1)+" of "+S2_Info[arrayNum].length
			);
			
		setTimeout("S2_next("+arrayNum+",false)", S2_delay);
	}
	return false;
}

function S2_prev(arrayNum,firstCall)
{
	if (firstCall) {
		S2_state = -1;
		
		if (S2_number[arrayNum] == null) {
			S2_number[arrayNum] = 0;
		}
	}
	if (S2_state == -1)
	{
		S2_number[arrayNum]--;
		
		if (S2_number[arrayNum] < 0)
			S2_number[arrayNum]=S2_Info[arrayNum].length-1;
			
		S2_changeImage('slideShowImage'+arrayNum,S2_Info[arrayNum][S2_number[arrayNum]][5],S2_Info[arrayNum][S2_number[arrayNum]][1],
			'description'+arrayNum,S2_Info[arrayNum][S2_number[arrayNum]][0],
			'numberOf'+arrayNum,
			""+(S2_number[arrayNum]+1)+" of "+S2_Info[arrayNum].length
			);
			
		setTimeout("S2_prev("+arrayNum+",false)", S2_delay);
	}
	return false;
}

function S2_pause()
{
	S2_state = 0;
	hide('magnifyImagePopup');
	return false;
}

function navMainDivider(wrapper, status)
{
	var element = $(wrapper);
	if (status == "hide"){
		element.style.background = "none";
	} else if (status == "show"){
		element.style.background = "url(/shared/resource/images/global/white_list_line.gif) no-repeat center right";
	}
}


// From travelOptions.js

var travelFromObj;
var travelToObj;
var travelProviderObj;
var travelListObj;
var travelListLength;
function test() {
alert("test");

}
var globalComments = new Array();

function travelInitialise() {
	travelFromObj = document.filterForm.from;
	travelToObj = document.filterForm.destination;
	travelProviderObj = document.filterForm.provider;
	travelListObj = document.getElementById("travelList");

	var table = travelListObj.getElementsByTagName("table")[0];
	var trs = table.getElementsByTagName("tr");
	var tcol = trs[1].getElementsByTagName("td");
	var comments;

	var froms = new Array(); 
	var goingTo = new Array(); 
	var providers = new Array();
	
	if(tcol.length > 3){
		comments = new Array();
		
	}
	
	var rowCounter = 0;
	
	//Set the Values
	for (var i=1; i<trs.length; i++) { // Start from second TR (arrays start from zero!)
		var tds = trs[i].getElementsByTagName("td");
		froms[i - 1] = tds[0].innerHTML;
		goingTo[i - 1] = tds[1].innerHTML;
		providers[i - 1] = tds[2];
		if(tds.length > 3){		
		comments[i - 1] = tds[3].innerHTML;
		}
	}
	
	var from = "";
	var to = "";
	var a;
	var provider = "";
	var url = "";
	var comment = "";
		
	var div = document.getElementById("travelSearch");
	if (div != null) {
		for (var i=0; i<froms.length; i++) { // loop each row of values
			from = froms[i];
			to = goingTo[i];
			a = providers[i].getElementsByTagName("a")[0]; // anchor from 3rd TD
			provider = a.innerHTML;
			url = a.getAttribute("href") ;
			comment = comments[i];
			//comment = comments[i] ;
			travelOptions.push(new Array(from, to, url, provider,comment));
		}

		//travelOptions.sort(travelSortAllOptions);
		//travelOptions.sort();
		travelOptions.sort();
		
		travelDrawOptions();
		globalComments=comments;
		travelDrawList();

		div.style.display = "block";
	}
}

function travelSortAllOptions(a, b) {
	var left = (a[travelFrom] + ", " + a[travelTo] + ", " + a[travelProvider]).toLowerCase();
	var right = (b[travelFrom] + ", " + b[travelTo] + ", " + b[travelProvider]).toLowerCase();

	if (left > right)
		return 1;

	if (left < right)
		return -1;

	return 0;
}

function travelSortFirstOption(a, b) {
	var left = (a[0]).toLowerCase();
	var right = (b[0]).toLowerCase();

	if (left > right)
		return 1;

	if (left < right)
		return -1;

	return 0;
}

var travelFrom = 0;
var travelTo = 1;
var travelUrl = 2;
var travelProvider = 3;
var travelLastFrom = "";

var travelOptions = [];

function travelDrawOptions() {
	var option;
	var from = travelFromObj.options[travelFromObj.selectedIndex].value.toLowerCase();
	var to = travelToObj.options[travelToObj.selectedIndex].value.toLowerCase();
	var provider = travelProviderObj.options[travelProviderObj.selectedIndex].value.toLowerCase();
	
	from = from == null ? "" : from;
	to = to == null ? "" : to;
	provider = provider == null ? "" : provider;

	travelFromObj.options.length = 1;
	travelToObj.options.length = 1;
	travelProviderObj.options.length = 1;

	for (var i=0; i<travelOptions.length; i++){	
		travelAddOption(travelFrom, i, from, to, provider);
	}

	for (var i=0; i<travelOptions.length; i++){
		travelAddOption(travelTo, i, from, to, provider);
	}

	travelDistinctOptions(travelToObj);
	
	for (var i=0; i<travelOptions.length; i++){
		travelAddOption(travelProvider, i, from, to, provider);
	}

	travelDistinctOptions(travelProviderObj);
}

function travelDistinctOptions(obj) {
	var providers = new Array();

	for (var i=1; i<obj.options.length; i++) {
		providers.push(new Array(obj.options[i].value, obj.options[i].selected));
	}
		
	providers.sort(travelSortFirstOption);
	
	for (var i=providers.length-1; i>0; i--) {
		if (providers[i][0].toLowerCase() == providers[i-1][0].toLowerCase()) {
			providers[i][0] = "";
			if (providers[i][1])
				providers[i-1][1] = true;
		}
	}
			
	obj.options.length = 1;
	
	for (var i=0; i<providers.length; i++) {
		if (providers[i][0] != "") {
			obj.options.length++;
			obj.options[obj.options.length-1] = new Option(providers[i][0], providers[i][0]);
			obj.options[obj.options.length-1].selected = providers[i][1];
		}
	}
}

function travelAddOption(type, i, from, to, provider) {
	var obj;
	var val;
	var add = false;
	var chosen = false;
	
	switch (type) {
		case travelFrom:
			obj = travelFromObj;
			val = travelOptions[i][travelFrom];
			add = (i==0 || travelOptions[i][travelFrom].toLowerCase() != travelOptions[i-1][travelFrom].toLowerCase());
			chosen = (from == travelOptions[i][type].toLowerCase());
			break;
		case travelTo:
			obj = travelToObj;
			val = travelOptions[i][travelTo];
			add = (
					(from == "" || from == travelOptions[i][travelFrom].toLowerCase())
					&& (provider == "" || provider == travelOptions[i][travelProvider].toLowerCase())
				  );
			chosen = (to == travelOptions[i][type].toLowerCase());
			break;
		case travelProvider:
			obj = travelProviderObj;
			val = travelOptions[i][travelProvider];
			(val == null) ? val="" : val=val.replace('&amp;','&');
			add = (
					(from == "" || from == travelOptions[i][travelFrom].toLowerCase())
					&& (to == "" || to == travelOptions[i][travelTo].toLowerCase())
					);
			chosen = (provider == travelOptions[i][type].toLowerCase());
			break;
	}
	
	if (add) {
		obj.options.length++;
		obj.options[obj.options.length-1] = new Option(val, val);
		if (chosen)
			obj.options[obj.options.length-1].selected = true;
	}
}

function travelDrawListByFilter(){
	travelDrawList(globalComments);
}
function travelDrawList(comments) {
	var from = travelFromObj.options[travelFromObj.selectedIndex].value;
	var to = travelToObj.options[travelToObj.selectedIndex].value;
	var provider = travelProviderObj.options[travelProviderObj.selectedIndex].value;
	
	if (from != travelLastFrom) {
		to = "";
		travelToObj.selectedIndex = 0;
		provider = "";
		travelProviderObj.selectedIndex = 0;
	}
	
	travelLastFrom = from;
	
	var html = "";
	var colFrom = "";
	var colTo = "";
	var colProvider = "";
	var trs = "";
	var trElem, tdElem, tbodyElem;
	
	
	var oTable = travelListObj.getElementsByTagName("table")[0];
	
	tbodyElem = oTable.getElementsByTagName("tbody")[0];
	while (tbodyElem.rows.length > 1) {
		tbodyElem.removeChild(tbodyElem.rows[tbodyElem.rows.length - 1]);
	}
	
	for (var i=0; i<travelOptions.length; i++) { // a row for each

		if ((from == "" || from == travelOptions[i][travelFrom])
				&& (to == "" || to == travelOptions[i][travelTo])
				&& (provider == "" || provider == travelOptions[i][travelProvider])) {
		
		   trElem = tbodyElem.insertRow(tbodyElem.rows.length);

		   tdElem = trElem.insertCell(trElem.cells.length);
		   tdElem.innerHTML = travelOptions[i][travelFrom];
		   
		   tdElem = trElem.insertCell(trElem.cells.length);
		   tdElem.innerHTML = travelOptions[i][travelTo];
		   
		   tdElem = trElem.insertCell(trElem.cells.length);
		   tdElem.innerHTML = '<a href="' + travelOptions[i][travelUrl] + '" target="_blank">' + travelOptions[i][travelProvider] + '</a>';
		   
		   tdElem = trElem.insertCell(trElem.cells.length);
		       if (travelOptions[i][4] == undefined) {
			   	tdElem.innerHTML = "&nbsp;"
			   }
			   else {
			   	tdElem.innerHTML = travelOptions[i][4];
			   }
		   
		}
	}
	var x,y;
	var FromSet = false;
	var ToSet = false;
	var PSet = false;
	if (document.createElement &&
	(meta = document.createElement('meta'))) {	
	var myArray = [["WT.lbidropdown_from", from,"metaFrom",FromSet],
			["WT.lbidropdown_to", to, "metaTo",ToSet],
			["WT.lbidropdown_provider", provider, "metaProvider",PSet]];			
		for (x=0; x< myArray.length;x++){		
			for (y=0; y< myArray[x].length;y++){
			var m = (document.getElementsByTagName("meta"));						
				for(var i = 0; i < m.length; i++){				
					if(m[i].name == myArray[x][0] && myArray[x][1] != ""){
					m[i].content = myArray[x][1];
					myArray[x][3] = true;
					}
				} 		
	
			}
			
					if (myArray[x][3] ==false && myArray[x][1] != ""){						
					var metaSet = document.createElement("meta");
					metaSet.name = myArray[x][0];
					metaSet.content = myArray[x][1];
					document.getElementsByTagName('head').item(0).appendChild(metaSet);

					}
	
		}
	

	}

	travelDrawOptions();
}