var	ns;// 			= (navigator.appName.indexOf("Netscape") != -1);
var	ie ;//			= (navigator.appName.indexOf("Microsoft") != -1);
var	aval_height ;//	= ns ? innerHeight : document.body.clientHeight;
var	aval_width ;//		= ns ? innerWidth : document.body.clientWidth;
var	pY 	;//= ns ? pageYOffset : document.body.scrollTop;
var	pY2 ;//= ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;

var mouse_click_x = 0;
var mouse_click_y = 0;


var mouseX 			= 0; //global variable for mouse X cor
var mouseY 			= 0;  //global variable for mouse Y cor
var mouseE				; //global variable for mouse event



/* ++++++++++++++++++++++++++++++++++++++ main menu ++++++++++++++++++++++++++++++++++++++++++++++*/
	var lastM;
	var lastML =1;
	var sfCurEl;
	var sfMenuIds = new Array(1);
	sfMenuIds[0] 	= "nav-main";
	var mainMenu;
	var lastbg;
	var sfHover = function() {

		var url		= window.location.toString().split("#");
		if (url.length>1)
		{
		//	document.getElementById('Content').innerHTML='';
			//getPage('index.php?page='+url[1],'Content','',loadMap);
		}

		var sfEls;
		mainMenu	= document.getElementById(sfMenuIds[0]);
		
		if (mainMenu)
		for (var i=0; i<sfMenuIds.length; i++)
		{
			sfEls = document.getElementById(sfMenuIds[0]).getElementsByTagName("li");
			for (var j=0; j<sfEls.length; j++)
			{

				/////////////////turn into ajax////////////
				//if (window.location.toString().indexOf('Galleries')<0)
				//	sfEls[j].getElementsByTagName("a")[0].href="javascript:getPage('"+sfEls[j].getElementsByTagName("a")[0].href+"&q=Content','content');getPage('"+sfEls[j].getElementsByTagName("a")[0].href+"&q=SideNote','sidenote');Hor_Nav('hor-nav','"+getQuery('page',sfEls[j].getElementsByTagName("a")[0].href)+"');";
				////////////////////////////////////////////


				if (sfEls[j].getElementsByTagName("a").length>1)
					sfEls[j].getElementsByTagName("a")[0].className=(sfEls[j].parentNode.parentNode.id==sfMenuIds[0])?'':'subparent';

				//if (getQuery('page') && getQuery('page')==getQuery('page',sfEls[j].getElementsByTagName("a")[0].href))
				//	sfEls[j].getElementsByTagName("a")[0].className='current';

				sfEls[j].onmouseover=function() {
					this.className='sfhover';
					if (Root(this).parentNode.parentNode.nodeName=='DIV')
						HighLight(this);
						//Root(this).getElementsByTagName("a")[0].className='roothover';
				}
				sfEls[j].onmouseout=function() {
					this.className=(this.className=='sfhover')?'':'rootcurrent';//this.className.replace(new RegExp(" sfhover\\b"), "");

					if (Root(this).parentNode.parentNode.nodeName=='DIV')
						DeHighLight(this);
						//Root(this).getElementsByTagName("a")[0].className=(this.className!='sfhover'&&(getQuery('page') && getQuery('page')==getQuery('page',Root(this).getElementsByTagName("a")[0].href)))?'rootcurrent':'';
				}
			}
		}
		if (window.location.toString().indexOf("?")>1)
		Hor_Nav('hor-nav');
	}
	function Root(obj)
	{
		//purpose:find menu root
		if (obj.parentNode.parentNode.nodeName!='UL' || obj.parentNode.nodeName!='LI')
			return obj.parentNode.parentNode;
		else
			return Root(obj.parentNode);
	}
	function HighLight(obj)
	{
		//purpose:
		if (obj.nodeName=='UL' || obj.nodeName=='LI')
		{
			if (obj.nodeName!='UL')
			{
				obj.getElementsByTagName("a")[0].setAttribute("oldClass",obj.getElementsByTagName("a")[0].className);
				if (obj.getElementsByTagName("a")[0].innerHTML.toLower!='home')
					obj.getElementsByTagName("a")[0].className='highlight';

			}
//			else
//			{
//				obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].setAttribute("oldClass",obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].className);
//				if (obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].innerHTML.toLower!='home')
//					obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].className='highlight';
//			}
			HighLight(obj.parentNode);

		}
	}
	function DeHighLight(obj)
	{
		//purpose:
		if (obj.nodeName=='UL' || obj.nodeName=='LI')
		{
			if (obj.nodeName!='UL')
				obj.getElementsByTagName("a")[0].className=obj.getElementsByTagName("a")[0].getAttribute("oldClass");
//			else
//				obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].className=obj.getElementsByTagName("li")[0].getElementsByTagName("a")[0].getAttribute("oldClass");
			DeHighLight(obj.parentNode);
		}
	}
	function Hor_Nav(con_id,query)
	{
		var url		= window.location.toString().split("#");
		var con		= document.getElementById(con_id);
		if (con)
		{
			var lis		= document.getElementById("nav-main").getElementsByTagName("li");
			con.innerHTML='';
			for (var i=0;i<lis.length;i++)
			{
				if (getQuery('page',lis[i].getElementsByTagName("a")[0].href) == (query||getQuery('page')||url[1]))
				{
					//if (!getQuery("title"))
					//	document.title = URL.decode(lis[i].getElementsByTagName("a")[0].innerHTML.replace(/&amp;/g,'&'));
					
					
					//document.write(UpLink(lis[i],'DIV',lis[i].parentNode));
					con.innerHTML=UpLink(lis[i],'DIV',lis[i].parentNode)+con.innerHTML;
					break;
				}
			}
		}
	}
	function UpLink(nod,esc,cur)
	{
		if (nod.parentNode.nodeName!=esc)
		{
			if (nod.nodeName=='UL')
				nod = nod.parentNode; //step up 1 more level
			var a 		= nod.getElementsByTagName("a")[0];
			if (cur)
				a = "<span style='color:#000;cursor:default;' onmouseover='siblinks(this,\""+getQuery('page',a.href)+"\")'>" + a.innerHTML+"</span>"; //no link for current item
			else
				a	= "<a onmouseover='siblinks(this,\""+getQuery('page',a.href)+"\")' href='" + a.href + "'>" + a.innerHTML + "</a>>>";

			return UpLink(nod.parentNode,esc)+a; //recursively call to get to the top level
		}
		else
			return '';//terminate when we find the right nod
	}
var lastHorMenu;
function siblinks(obj,id)
{
	if (mainMenu)
	{
		obj.style.cursor='pointer';
		var container = document.getElementById(id);
		var body			= document.getElementsByTagName("body")[0];
		var nodes;
		var lis				= mainMenu.getElementsByTagName("li");
		var br				= document.createElement("br");
		if (lastHorMenu)
			lastHorMenu.style.display='none';

		if (!container)
		{
			container=document.createElement("div");
			container.style.position		='absolute';
			container.id								= id;
			container.style.width				= 141;
			container.style.padding			= "0";
			container.className					= "hor-menu";
			body.appendChild(container);
			for (var i=0;i<lis.length;i++)
				if (getQuery('page',lis[i].getElementsByTagName("a")[0].href)==id)
					nodes=lis[i].parentNode.childNodes;

			for (var i=0;i<nodes.length;i++)
				if (nodes[i].nodeName!= "#text" && nodes[i].getElementsByTagName("a")[0] && nodes[i].getElementsByTagName("a")[0].innerHTML!=obj.innerHTML)
					container.appendChild(nodes[i].getElementsByTagName("a")[0].cloneNode(true));
		}
		else
			container.style.display='';

		container.style.top 				= getTop(obj)+obj.offsetHeight;
		container.style.left 				= getLeft(obj);


		lastHorMenu = container;
	}
	else
		obj.style.cursor='wait';
		
}
/* ++++++++++++++++++++++++++++++++++++++ end main menu +++++++++++++++++++++++++++++++++++++++++*/

function isChild(s,d) {
	while(s) {
		if (s==d)
			return true;
		s=s.parentNode;
	}
	return false;
}

function getLeft(obj)
{
	var curleft = 0;

	if (obj)
	{
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
	}
	return curleft;
}

function getTop(obj)
{
	var curtop = 0;
	try{
	if (obj)
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	}catch(ee){}
	return curtop;
}

function getQuery(variable,query) {
	//query, caller can give query as well as location string
  query = query || window.location.search.substring(1);

  if (query.indexOf("?")>-1)
  	query = query.split("?")[1];

  var vars = query.split("&");
  try
  {
	  for (var i=0;i<=vars.length;i++) {
		var pair = vars[i].split("=");

		if (pair[0] == variable) {

		  return pair[1];
		}
		//else return "";
	  }
  }catch (err){}
  //alert('Query Variable ' + variable + ' not found');
}

function refresh()
{
	var sURL = unescape(window.location.pathname + "#form");
	window.location.replace( sURL );



}
function sendto(name, subject)
{
	var sURL = "name" + "@qsine.ca?subject=" + subject;
	window.open("mailto:" + sURL.replace("name",name));
}
function validate_form(form, not_req_items, button)
{
	var valid = true;
	var message = "FIELDS REQUIRED: \n";
	var form1 = document.getElementById(form);
	var total_items = form1.length;
	var i;
	var lastEfield = null;
	//var not_req_items = "Owner2, Title";
	//var Item;

	for (i=0;i<total_items;i++)
	{
		var Item = form1[i];
		if (Item != null)
		{
			///////////////////////set check boxes value//////////////////////////
				if (Item.type == "checkbox")
				{
					if (Item.checked)
					{
						Item.value = "yes";
					}
					else
					{
						Item.value = "no";
					}

					//Item.value = Item.checked;
					//alert(Item.value + " [" + Item.name+ "]");
				}
				///////////////////////////////////////////////////////////////////////
				if (Item.type == "file")
				{
						if (Item.value.length > 3)
						{
							var atype = "pdf,doc,PDF,DOC";
							var len = Item.value.length;
							var position = eval(len - 3);
							var fileType = Item.value.substring(position, len);
							if (atype.indexOf(fileType) < 0)
							{
								valid = false;
								message += "Invalid file type\n";
							}
						}
				}
			if ((Item.name != "") && (not_req_items.indexOf(Item.name) < 0))
			{

				if(Item.value == "")
				{
					valid = false;
					if (lastEfield == null)
					{
						lastEfield = Item;
					}
					message += Item.name.replace("_"," ") + "\n"
				}
				//message += Item.id + ":" + Item.value + "\n";
			}
		}
		//message = ":" + Item.value + "\n";
		/*if (Item.id != ""){
		alert(Item.id);
		}*/
	}
	if (valid)
	{
		//alert("valid. form now ready to submit");
		button.value = "Please wait.";
		button.disabled = "disabled";
		//form1.submit();
		return true;

	}
	else
	{
		alert(message);
		lastEfield.focus();
		
		return false;
	}
}


function FindKeyCode(e)
{
	if(e.which)
		keycode=e.which;  //Netscape
   else
    keycode=e.keyCode; //Internet Explorer

  //alert("FindKeyCode"+ keycode);
	return keycode;
}
function filesubmit(atype,button)
{
	var file1 = document.form1.file1;
	var filename = file1.value;
	if ((filename.length > 0) && (getCookie('key')))
	{
		var len = filename.length;
		var position = eval(len - 3);
		var fileType = filename.substring(position, len);
		if (atype.indexOf(fileType) > -1)
		{
			//alert("Valid file type");
			button.value = "Uploading...";
			button.disabled = "disabled";
			document.form1.submit();
		}
		else
		{
			alert("Invalid document type");
		}
	}
	else
	{
		alert("Select a file & try again");
	}
}

function getQuery(variable,query) {
	//query, caller can give query as well as location string
  query = query || window.location.search.substring(1);

  if (query.indexOf("?")>-1)
  	query = query.split("?")[1];

  var vars = query.split("&");
  try
  {
	  for (var i=0;i<=vars.length;i++) {
		var pair = vars[i].split("=");

		if (pair[0] == variable) {

		  return pair[1];
		}
		//else return "";
	  }
  }catch (err){}
  //alert('Query Variable ' + variable + ' not found');
}
function Left(obj)
{
	var curleft = 0;

	if (obj)
	{
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
	}
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	try{
	if (obj)
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	}catch(ee){}
	return curtop;
}
function setCenter(con,width,height)
{	getScreen();
	var div 					= con || edit_div;
	div.style.height 		= '';
	div.style.display		= '';
	div.style.position	='absolute';
	
	div.style.top 	= ((height||div.offsetHeight) > aval_height) ? pY 	: (pY + (Math.ceil((aval_height - (height||div.offsetHeight))/2))) + 'px';
	div.style.left	= ((width||div.offsetWidth) > aval_width) 	? 0	: Math.ceil((aval_width - (width||div.offsetWidth))/2) + 'px';
	
	if ((height||div.offsetHeight) > aval_height)
		div.style.height = (aval_height - 20)	+ 'px';
		
	div.style.overflow = 'auto';
		
	//if (edit_div)
	//grayOut(true);
}
function getScreen()
{
	ns 			= (navigator.appName.indexOf("Netscape") != -1);
	ie 			= (navigator.appName.indexOf("Microsoft") != -1);
	aval_height 	= ns ? innerHeight : document.body.clientHeight;
	aval_width 		= ns ? innerWidth : document.body.clientWidth;
	pY 	= ns ? pageYOffset : document.body.scrollTop;
	pY2 = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
}
function getCookie(cookiename) 
{
	 var cookiestring=""+document.cookie;
	 var index1=cookiestring.indexOf(cookiename);
	 if (index1==-1 || cookiename=="") return "";
	 var index2=cookiestring.indexOf(';',index1);
	 if (index2==-1) index2=cookiestring.length;
	 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
/*function URLEncode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
}
function URLDecode(utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}
	
*/
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}