/*
----------------------------------------------------------------------------------------------
Framework library
Author:   Tribal DDB HK (Garfield Chan)
Created:  4 October 2007

History:

---------------------------------------------------------------------------------------------- */

// class inheritance
Object.prototype.Extends = function(oBaseClass) {
	for (sProperty in oBaseClass) {
		this[sProperty] = oBaseClass[sProperty];
	}
}

// remove leading and trailing whitespace
String.prototype.trim = function() {
	return this.replace( /^\s+/, "" ).replace( /\s+$/, "" );
}

// convert a string to number
String.prototype.toNum = function() {
	return parseInt(this);
}

_isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

/* Ajax function
---------------------------------------------------------------------------------------------- */

// create the HTTP request object
var xmlHttp;
function getXmlHttpObject() {
	var xmlHttp = null;
	try {
		xmlHttp=new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if (xmlHttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	} else {
		return xmlHttp;
	}
}

/* Standard Code of Image Rollover*/

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_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_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(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/* misc. functions
---------------------------------------------------------------------------------------------- */

// create event handler
function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	} else {
		elm['on' + evType] = fn;
	}
}

// create event handler for onload
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

// shortcut to select element by ID
function $() {
	var elements = [];
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

// get arry of elements by tag name or class name
function $$(node,tag,searchClass) {
	var elements = [];
	if (node == null) {node = document;}
	if (tag == null) {tag = '*';}
	var els = node.getElementsByTagName(tag);
	if (searchClass) {
		var elsLen = els.length;
		var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
		for (var i=0, j=0; i<elsLen; i++) {
			if (pattern.test(els[i].className)) {
				elements[j] = els[i];
				j++;
			}
		}
	} else {
		elements = els;
	}
	return elements;
}

// popup window
function popPic(url,w,h) {
	var npop = window.open(url,'popwin','width='+w+',height='+h+',menubar=no,status=no,scrollbars=yes,resizable=no,toolbar=no,location=no,directories=no');
}

// function to change images when mouse over
function ChangeImageOver() {
	if (document.images)
		var cate = (arguments[1]) ? "_" + arguments[1] : "";
		document.getElementById(arguments[0]).src = eval(arguments[0] + cate + "_over.src")
}

// function to change images when mouse out
function ChangeImageOut() {
	if (document.images)
		document.getElementById(arguments[0]).src = eval(arguments[0] + ".src")
}

// function to change divs in bparty.htm
function changediv(d) {
	if (d != "indoor") {document.getElementById("indoor").style.display="none";/*document.getElementById("ds").href="bparty.htm#dspecial";*/}
	if (d != "rest") {document.getElementById("rest").style.display="none";/*document.getElementById("ds").href="bparty.htm#special";*/}
	if (d != "outdoor") {document.getElementById("outdoor").style.display="none";/*document.getElementById("ds").href="bparty.htm#special";*/}
	document.getElementById(d).style.display="inline";
}

// Share Section

var xmlhttp;

function loadXMLDoc(url)
{
	xmlhttp=null;
	if (window.XMLHttpRequest)
		{// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
		}
	else
	{// code for IE5, IE6
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.onreadystatechange=onResponse;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function onResponse()
{
	if(xmlhttp.readyState!=4) return;
	if(xmlhttp.status!=200)
	{
		alert("Problem retrieving XML data");
		return;
	}
	
	var title;
	var photo;
	var total;
	
	xmlShare = "<select style='font-weight:bold;' onchange='javascript:change_Share(this.value);'>";
	x=xmlhttp.responseXML.documentElement.getElementsByTagName("share");
	for (i=0;i<x.length;i++)
	{
		xx=x[i].getElementsByTagName("title");
		{
			try
			{
				title = xx[0].firstChild.nodeValue;
			}
			catch(er)
			{
				
			}
		}
		
		xx=x[i].getElementsByTagName("date");
		{
			try
			{
				photo = xx[0].firstChild.nodeValue;
			}
			catch(er)
			{
				
			}
		}
		
		xx=x[i].getElementsByTagName("total");
		{
			try
			{
				t = xx[0].firstChild.nodeValue;
				total = parseInt(t);
			}
			catch(er)
			{
				
			}
		}
		xmlShare = xmlShare + "<option value='" + photo + " " + total + "'>" + title;
		xmlShare = xmlShare + "</option>";
		
		if (i==0)
		{
			sharePhoto = "<center><table cellpadding='0' cellspacing='0' border='0'><tr><td align='center'><img id='share_title' src='images/share_title_" + photo + ".gif' /><br /><br /><img id='share_photo' src='images/share_photo1_" + photo + ".jpg' /><br /><br /></td></tr>";
	
			if (total > 1)
			{
				sharePhoto = sharePhoto + "<tr><td align='center'><table cellpadding='0' cellspacing='0' border='0'><tr><td width='20' id='pnav_p'></td><td id='photo_nav'>1 / " + total + "</td><td width='20' align='right' id='pnav_n'><img src='images/share_next.gif' onclick='javascript:change_Share_Photo(2," + total + ",\"" + photo + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></td></tr></table></td></tr></table></center>";
			}
			else
			{
				sharePhoto = sharePhoto + "<tr><td align='center'><table cellpadding='0' cellspacing='0' border='0'><tr><td width='20' id='pnav_p'></td><td id='photo_nav'></td><td width='20' align='right' id='pnav_n'></td></tr></table></td></tr></table></center>";
			}
		}
	}
	document.getElementById('sharelist').innerHTML=xmlShare;
	document.getElementById('share').innerHTML=sharePhoto;
}

function change_Share(s) {
	var st=new Array();
	st = s.split(" ");
	
	p= st[0];
	t = st[1];
	document.getElementById("share_title").src="images/share_title_" + p + ".gif";
	document.getElementById("share_photo").src="images/share_photo1_" + p + ".jpg";
	document.getElementById("photo_nav").innerHTML = "1" + "&nbsp;/&nbsp;" + t;
	document.getElementById("pnav_p").innerHTML = "";
	document.getElementById("pnav_n").innerHTML = "<img src='images/share_next.gif' onclick='javascript:change_Share_Photo(2," + t + ",\"" + s + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></a>";
}

function change_Share_Photo(c, t, s) {
	var st=new Array();
	st = s.split(" ");
	p= st[0];
	
	document.getElementById("share_photo").src="images/share_photo" + c + "_" + p + ".jpg";
	document.getElementById("photo_nav").innerHTML = c + "&nbsp;/&nbsp;" + t;

	current = parseInt(c);
	previous = current - 1;
	next = current + 1;
	
	if (c == 1) {
		document.getElementById("pnav_p").innerHTML = "";
		document.getElementById("pnav_n").innerHTML = "<img src='images/share_next.gif' onclick='javascript:change_Share_Photo(" + next + "," + t + ",\"" + p + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></a>";
	}
	
	if ((c > 1) && (c < t)) {
		document.getElementById("pnav_p").innerHTML = "<img src='images/share_previous.gif' onclick='javascript:change_Share_Photo(" + previous + "," + t + ",\"" + p + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></a>";
		document.getElementById("pnav_n").innerHTML = "<img src='images/share_next.gif' onclick='javascript:change_Share_Photo(" + next + "," + t + ",\"" + p + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></a>";
	}
	
	if (c == t) {
		document.getElementById("pnav_p").innerHTML = "<img src='images/share_previous.gif' onclick='javascript:change_Share_Photo(" + previous + "," + t + ",\"" + p + "\");' onmouseover='this.style.cursor=\"pointer\"' onmouseout='this.style.cursor=\"normal\"' /></a>";
		document.getElementById("pnav_n").innerHTML = "";
	}
}
