
// ajax variables
var currentTime = new Date();
var myRequest = currentTime.getTime();

// tab content
var mytabContents;

// sliding div variables
var timerlen = 5;
var slideAniLen = 250;
var linkEl;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

// scrolling
var automaticInterval = 0;
var automaticTimeout = 0;
var manualInterval = 0;
var scrollSpeed = 50;
var scrollWidth = 20;
var liWidth = 0;
var windowPanel = "";

// form values
var contactNumberValue = "Contact Number";

// map vars
var mLa1;
var mLo1;

function isDefined(property) {
	return (typeof property != 'undefined');
}

if (!Array.prototype.forEach) {
 Array.prototype.forEach = function(fun /*, thisp*/) {
 var len = this.length;
 if (typeof fun != "function")
 throw new TypeError();

 var thisp = arguments[1];
 for (var i = 0; i < len; i++) {
 if (i in this)
	fun.call(thisp, this[i], i, this);
 }
 };
}


function externalLinks() {
	if (!document.getElementsByTagName) {
		return;
	}
	var anchors = document.getElementsByTagName("a");
	for (var i=0;i<anchors.length;i++) { 
		var anchor = anchors[i];
		if ((anchor.getAttribute("href")) && (anchor.getAttribute("rel") == "external")) {
			anchor.target = "_blank";
		}
	}
}

function blurLinks() {
	lnks = document.getElementsByTagName("a");
	inpts = document.getElementsByName("input");
	for(i=0;i<lnks.length;i++) {	
		if ((lnks[i].getAttribute("rel") == null) || (lnks[i].getAttribute("rel") == "")) {
			lnks[i].onfocus = new Function("this.blur()");
		}
	}
	for(i=0;i<inpts.length;i++) {
		inpts[i].onfocus= new Function("this.blur()");
	}
}

function correctPNG() {
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);

	for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) {
		if (itsAllGood && img.src.match(/\.png$/i) != null) {
			img.style.visibility = "hidden";
			var src = img.src;
			var div = document.createElement("DIV");
			div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')"
			div.style.width = img.width + "px";
			div.style.height = img.height + "px";
			if (img.parentElement.href) {
				div.style.cursor = "hand";
			}
			img.replaceNode(div);
			img.style.visibility = "visible";
		}
	}
}

function makeBool(s) {
	var bool = 1;
	var s = s.toString();
	s = s.toLowerCase();
	bool = (s === "false") ? 0 : 1;
	return bool;
}

function stringContains(s,contains) {
 if (s.indexOf(contains) > -1) {
	 return true;
 }
	return false;
}

function toggleSlide(objname){
	if(document.getElementById(objname).style.display == "none"){
		// div is hidden, so let's slide down
		linkEl.className = "Down";
		slidedown(objname);
	}else{
		linkEl.className = "Up";
		// div is not hidden, so slide up
		slideup(objname);
	}
}

function slideInt() {
	if (document.getElementById("moreTextHolder")) {
		holdEl = document.getElementById("moreTextHolder");
		linkHold = document.getElementById("moreTextLink").getElementsByTagName("a");
		linkEl = linkHold[0];
		offsetHeight = holdEl.offsetHeight;
		paddingTop = parseInt(holdEl.style.paddingTop);
		paddingBottom = parseInt(holdEl.style.paddingBottom);
		paddingTotal = parseInt(paddingTop + paddingBottom);
		holdEl.style.height = parseInt((offsetHeight - 20)) + "px";
		holdEl.style.display = "none";
		holdEl.style.overflow = "hidden";
		linkEl.href = "javascript:;";
		linkEl.onmousedown = new Function("toggleSlide('moreTextHolder')");
	}
}

function slidedown(objname) {
	if(moving[objname]) {
		return;
	}
	if(document.getElementById(objname).style.display != "none") {
		return; // cannot slide down something that is already visible
	}
	moving[objname] = true;
	dir[objname] = "down";
	startslide(objname);
}

function slideup(objname) {
	if(moving[objname]) {
		return;
	}
	if(document.getElementById(objname).style.display == "none") {
		return;
	}
	moving[objname] = true;
	dir[objname] = "up";
	startslide(objname);
}

function startslide(objname) {
	obj[objname] = document.getElementById(objname);
	endHeight[objname] = parseInt(obj[objname].style.height);
	startTime[objname] = (new Date()).getTime();
	if(dir[objname] == "down") {
		obj[objname].style.height = "1px";
	}
	obj[objname].style.display = "block";
	timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname) {
	var elapsed = (new Date()).getTime() - startTime[objname];
	if (elapsed > slideAniLen) {
		endSlide(objname)
	} else {
		var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
		if(dir[objname] == "up") {
			d = endHeight[objname] - d;
		}
		obj[objname].style.height = d + "px";
	}
	return;
}

function endSlide(objname) {
	clearInterval(timerID[objname]);
	if(dir[objname] == "up") {
		obj[objname].style.display = "none";
	}
	obj[objname].style.height = endHeight[objname] + "px";
	delete(moving[objname]);
	delete(timerID[objname]);
	delete(startTime[objname]);
	delete(endHeight[objname]);
	delete(obj[objname]);
	delete(dir[objname]);
	return;
}

function scrollInit() {
	if (document.getElementById("Window")) {
		windowPanel = document.getElementById("Window").getElementsByTagName("ul");
		windowPanel = windowPanel[0];
		var windowPanelPanes = document.getElementById("Window").getElementsByTagName("li");
		liWidth = 510;
		windowPanel.style.width = (windowPanelPanes.length * liWidth) + "px";
		setAuto();
	}
}

function autoScroll() {
	windowPanel.style.left = (!windowPanel.style.left) ? 0 : parseFloat(windowPanel.style.left);
	if (parseFloat(windowPanel.style.left) > ((0-parseFloat(windowPanel.style.width)) + liWidth)) {
		endPos = Math.abs(parseFloat(windowPanel.style.left) - liWidth);
		direction = "Left";
	} else {
		endPos = 0;
		direction = "Right";
	}
	automaticInterval = setInterval("scroll"+direction+"('" + endPos + "')", scrollSpeed);
}

function clearAuto() {
	clearInterval(automaticInterval);
	clearTimeout(automaticTimeout);
}

function setAuto() {
	automaticTimeout = setTimeout("autoScroll()", 10000);
}

function scrollStart(endPos) {
	clearAuto();
	windowPanel.style.left = (!windowPanel.style.left) ? 0 : parseFloat(windowPanel.style.left);
	direction = ((0 - parseInt(endPos)) >= parseFloat(windowPanel.style.left)) ? "Right" : "Left";
	automaticInterval = setInterval("scroll"+direction+"('" + endPos + "')", scrollSpeed);
}

function scrollEnd() {
	if (manualInterval != 0) {
		clearInterval(manualInterval);
	}
	if (automaticInterval != 0) {
		clearAuto();
	}
	currentPos = parseInt(Math.abs(parseFloat(windowPanel.style.left)) / liWidth);
	var naviPanelLinks = document.getElementById("Navi").getElementsByTagName("li");
	for (i=0;i<naviPanelLinks.length;i++) {
		if (i == currentPos) {
			naviPanelLinks[i].className = "Active";
		} else {
			naviPanelLinks[i].className = "";
		}
	}
	setAuto();
}

function scrollLeft(endPos) {
	if (parseFloat(windowPanel.style.left) > (0-endPos)) {
		windowPanel.style.left = parseFloat(windowPanel.style.left) - parseInt(scrollWidth) + "px";
	} else {
		scrollEnd();
		windowPanel.style.left = (0 - parseInt(endPos)) + "px";
	}
}

function scrollRight(endPos) {
	if (parseFloat(windowPanel.style.left) < parseInt(endPos)) {
		windowPanel.style.left = parseFloat(windowPanel.style.left) + parseInt(scrollWidth) + "px";
	} else {
		scrollEnd();
		windowPanel.style.left = parseInt(endPos) + "px";
	}
}

function scrollToFrame(num) {
	framePos = (liWidth * (parseInt(num)-1));
	scrollStart(framePos);
}

function deleteRecord(idField,ID,title,page,pageA) {
	question = "Are you sure you want to remove " + title + "?";
	if (confirm(question)) {
		URL = page + ".php?action=delete&" + idField + "=" + ID + pageA;
		window.location.href= URL;
	}
}

function defaultFile(ID) {
	requestURL = "/ajax/defaultFile.php";
	requestQuery = "id=" + ID;
	myRequest = new ajaxObject(requestURL);
	myRequest.callback = function(responseText,responseStatus) { processResult(responseText,responseStatus);}
	myRequest.update(requestQuery, "POST");
}

function featuredStatus(type,ID) {
	requestURL = "/ajax/featuredStatus.php";
	requestQuery = "type=" + type;
	requestQuery += "&id=" + ID;
	myRequest = new ajaxObject(requestURL);
	myRequest.callback = function(responseText,responseStatus) { processResult(responseText,responseStatus);}
	myRequest.update(requestQuery, "POST");
}

function liveStatus(type,ID) {
	requestURL = "/ajax/liveStatus.php";
	requestQuery = "type=" + type;
	requestQuery += "&id=" + ID;
	myRequest = new ajaxObject(requestURL);
	myRequest.callback = function(responseText,responseStatus) { processResult(responseText,responseStatus);}
	myRequest.update(requestQuery, "POST");
}

function logOut() {
question = "Are you sure you wish to logout?";
	if (confirm(question)) {
		URL = "logout.php";
		window.location.href= URL;
	}
}

function tabContentInt() {
	if (document.getElementById("tabContent")) {
		mytabContents = new ddtabcontent("tabContent");
		mytabContents.setpersist(false);
		mytabContents.setselectedClassTarget("link");
		mytabContents.init();
	}
}

function hookMceEditorsByRel() {
	var textAreaArray = getElementsByRel("tinyMCE",null,"textarea")
	for(var j=0;j<textAreaArray.length;j++) {
		tinyMCE.execCommand('mceAddControl', true, textAreaArray[j].id); 
	}
}


function getElementsByRel(searchRel,node,tag) {
	var relElements = new Array();
	if (node == null) {
		node = document;
	}
	if (tag == null) {
		tag = "*";
	}
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchRel+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].getAttribute("rel"))) {
			relElements[j] = els[i];
			j++;
		}
	}
	return relElements;
}

function loadMap() {		
	if (document.getElementById("Map")) {
		if (GBrowserIsCompatible()) {
			var new_icon = new GIcon();
			new_icon.image = "/images/icons/map.png";
			new_icon.size = new GSize(100,58);
			new_icon.iconAnchor = new GPoint(100,58);
			new_icon.infoWindowAnchor = new GPoint(100,58);
			
			var opt;
			opt = {};
			opt.icon = new_icon;
			opt.draggable = false;
			opt.clickable = false;
			opt.dragCrossMove = true;
		  var map = new GMap2(document.getElementById("Map"));
		  map.setCenter(new GLatLng(mLa1, mLo1), 15);
		  map.setUIToDefault();
			point = new GLatLng(mLa1, mLo1);
			map.addOverlay(new GMarker(point,opt)); 
		}
		if (document.getElementById("Map2")) {
		  var map = new GMap2(document.getElementById("Map2"));
		  map.setCenter(new GLatLng(mLa2, mLo2), 15);
		  map.setUIToDefault();
			point = new GLatLng(mLa2, mLo2);
			map.addOverlay(new GMarker(point,opt)); 
		}
	}
}

function loadFlash() {
	if (document.getElementById("flashLocations")) {
		var so = new SWFObject("/flash/map.swf?t=" + myRequest, "Flash Map", "200", "314", "9", "#000000");
		so.addParam("wmode", "transparent");
		so.write("flashLocations");	
	}
	if (document.getElementById("flashUpload")) {
		var so = new SWFObject("/flash/upload.swf?t=" + myRequest, "Flash Uploader", "180", "70", "9", "#000000");
		so.addParam("wmode", "transparent");
		so.addVariable("outState", "0xffffff");
		so.addVariable("overState", "0xffd700");
		so.write("flashUpload");	
	}
}

if (isDefined(window.addEventListener)) {
	window.addEventListener("load", RunFunctions, false);
}

else if (isDefined(window.attachEvent)) {
	window.attachEvent("onload", RunFunctions);
}

function RunFunctions() {
	loadMap();
	externalLinks();
	blurLinks();
	formControls();
	tabContentInt();
	scrollInit();
	slideInt();
	loadFlash();
	hookMceEditorsByRel();
	functionResponse = eval(window.openRegistration)
	if (functionResponse != undefined) {
		openRegistration();
	}
	if ((window.attachEvent) && (!isDefined(document.body.style.maxHeight))) {
		correctPNG();
		sfHover();
	}
}

