/*
    Copyright 2007, 2008 Mike Howles, Rick Grady

    This file is part of uCpC.

    uCpC is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    uCpC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with ucPc.  If not, see <http://www.gnu.org/licenses/>.
*/
var installDirectory='/ucpc/'		// Relative path to ucpc
var isIE = document.all?true:false;	// true = MSIE, false = Mozilla
var map;				// Google Map
var marks=new Array(1000);		// Marks for Google Map
var markercount=0;			// Count of markers
var uploadFn;				// Upload Monitor function ref
var shield;				// Shielding IFRAME for Lightbox backdrop
var tempX;
var req;
var mouseX;
var mouseY;
var offsetX;
var offsetY;
var dragEle;
var isDragging=false;
var layout_eles=new Array();		// List of elements that maintain height on resize
var document_height;
var document_width;
/*
	Parses any JSON object and passes any javascript that needs to be
	attached to the DOM
*/
function eventinit(json) {
	if (json) {
		for(var i=0;i<json.jcoll.length-1;i++) {
			var j2=json.jcoll[i].jevent;
			if ($(j2.id)) {
				if (j2.onclick) addEvent($(j2.id), 'click', j2.onclick);
				if (j2.onmousemove) addEvent($(j2.id), 'mousemove', j2.onmousemove);
				if (j2.onmousedown) addEvent($(j2.id), 'mousedown', j2.onmousedown);
				if (j2.onmouseover) addEvent($(j2.id), 'mouseover', j2.onmouseover);
				if (j2.onmouseover) addEvent($(j2.id), 'scroll', j2.onscroll);
				if (j2.onresize) addEvent($(j2.id), 'resize', j2.onresize);
			}
		}
	}
}
/*
	Adds event to a DOM element.  Event can be a string or function.
*/
function addEvent(ele, eventtype, func) {
	if (isIE==true) {
		if (typeof(func)=='function') {
			ele.attachEvent("on"+eventtype, func);
		}else{
			ele.attachEvent("on"+eventtype, function(){eval(func)});
		}
	}else{
		if (typeof(func)=='function') {
			ele.addEventListener(eventtype, func, false);
		}else{
			ele.addEventListener(eventtype, function(){eval(func)}, false);		
		}
	}
}
/*
	init is called on BODY load during initial page load
*/
function init(json) {
	json=json.replace(/!UCPC!~APOST~!UCPC!/g, "'");
	var js="("+json+")";
	var j=eval(js);
	eventinit(j);
	isIE = document.all?true:false;
	// Assign true if MSIE, this is a global variable.
	if (!isIE) document.captureEvents(Event.MOUSEMOVE);
	var body=$$('body')[0];
	addEvent(body, 'mouseup' , "isSliding=false;isDragging=false;");
	addEvent(window, 'resize', "resizeEvents();");
	resizeEvents();
}
function resizeEvents() {
	if (isIE) {
		document_height=document.documentElement.clientHeight;
		document_width=document.documentElement.clientWidth;
/*
		var lH=lb.clientHeight;
		var lW=lb.clientWidth;	
*/
	}else{
		document_height=window.innerHeight;
		document_width=window.innerWidth;
/*
		var lH=lb.offsetHeight;
		var lW=lb.offsetWidth;	
*/
	}
	var body=$$('body')[0].childNodes;
	var ele_heights=0;
	for (i=0;i<body.length;i++) {
		if (body[i].id !=layout_eles[0]) {
		//alert(body[i].id+'/'+body[i].tagName);
		if(parseInt(body[i].offsetHeight)) ele_heights+=parseInt(body[i].offsetHeight);
		}
	}
	for (i=0;i<layout_eles.length;i++) {
		if ($(layout_eles[i])) {
			var ele=$(layout_eles[i]);
			ele.style.display="block";
			if(document_height-ele_heights>0) ele.style.height=document_height-ele_heights+'px';
		}
	}	
}
function mouseXY(e) {
	if (isIE==true) {
		mouseX = window.event.clientX;
		mouseY = window.event.clientY;
	}else{
		if(e){
			mouseX = e.pageX;
			mouseY = e.pageY;
		}
	}
	// window.status = "X="+mouseX+",Y="+mouseY+",offX="+offsetX+",offY="+offsetY+",isDragging="+isDragging;
	if (isDragging==true) {
		dragEle.style.left=mouseX-offsetX+'px';
		dragEle.style.top=mouseY-offsetY+'px';
		return false;
	}
}

function initLightBox(ele) {
	var lb=$(ele);
	lb.style.display='block';
	lb.style.position='absolute';
	lb.style.zIndex='1002';
	var db=$('fade');
	db.style.color="#000000"
	document.body.scroll="no";
	db.style.display="block";
	lb.style.display="block";
	if (isIE==true) {
		/* MSIE uses native controls which punch through DIVs
		   An IFRAME Shim is needed to prevent elements like
		   dropdowns and other IFRAMEs from poking through.
		*/
		if (!$('dragshield')) {
			shield = document.createElement("iframe");
			shield.style.cssText = "cursor:col-resize;filter:\'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)\';display:none;z-index:99;position:absolute;border:2px green solid;";
			shield.id="dragshield";
			document.body.appendChild(shield);
		}else{
			shield=$('dragshield');
		}
		shield.style.left="0";
		shield.style.top="0";
		shield.style.width=document.body.clientWidth;
		shield.style.height=document.body.clientHeight;
		shield.style.display="block";
	}
	scaleLightBox(ele);
	addEvent(window, 'resize', function(){scaleLightBox(ele);});
	addEvent(window, 'scroll', function(){scaleLightBox(ele);});
}
function closeLightBox(ele) {
	var lb=$(ele);
	var db=$('fade');
	var ds=$('dragshield');
	lb.style.display="none";
	db.style.display="none";
	if(ds)ds.style.display="none";	
}
function scaleLightBox(ele) {
	var lb=$(ele);
	var db=$("fade");
	if (window.innerWidth) {
		var dH=window.innerHeight;
		var dW=window.innerWidth;
		var lH=lb.offsetHeight;
		var lW=lb.offsetWidth;
	}else{
		var ds=$('dragshield');
		var dH=document.documentElement.clientHeight;
		var dW=document.documentElement.clientWidth;
		var lH=lb.clientHeight;
		var lW=lb.clientWidth;
		ds.style.width=dW;
		ds.style.height=dH;
	} 
	var sL=document.documentElement.scrollLeft;
	var sT=document.documentElement.scrollTop;
	db.style.width=dW;
	db.style.height=dH;
	db.style.top=sT+'px';
	db.style.left=sL+'px';
	lb.style.top=(dH/2)-(lH/2)+sT+'px';
	lb.style.left=(dW/2)-(lW/2)+sL+'px';
	//window.scrollTo(0,0);
}

function toggle_menu(id) {
	elename=id + "_title";
	elecont=id + "_contents";
	ele=$(elename);
	elec=$(elecont);
	if(ele.className=='node_expanded'){
		ele.className='node_collapsed'
		if (elec) {
			elec.style.display='none';
		}
	}else{
		ele.className='node_expanded'
		if (elec) {
			elec.style.display='block';
		}
	};
}

/* uC/pC AJAX engine v1.5
 * 
 * Mike Howles - entmike [at] gmail dot com
 * (Not compatible with prior frameworks at ALL)
 * 
 * Changelog:
 * July 10 2007 : Moved from XML to JSON
 * Early July 2007: Removed a lot of deprecated code
 * June 2007: Added more XML Nodes
 * April 2007: Massive overhaul - Receives XML Document for processing now
 *      instead of responsetext, no longer needs global divid or
 *      single destination
 */
function uC(xmlpage, varText, divid, validatelist, autopost, frmlist, md5) {
	//Declare and initialize required variables
	varText=varText.replace(/&amp;event=/g, "&event=");
	varText=varText.replace(/&amp;gooduntil=/g, "&gooduntil=");
	varText=varText.replace(/&amp;java=/g, "&java=");
	varText=varText.replace(/&amp;filelist=/g, "&filelist=");
	var validated = true;		// assume postdata is validated at beginning
	if (validatelist.length > 0) {
		var arrval=validatelist.split(",");
		for (var i=0;i<arrval.length;i++) {
			var v = document.getElementsByName(arrval[i])[0].value;
			if (v == '') {
				document.getElementsByName(arrval[i])[0].style.background="#F8F8C0";
				validated = false;
			}
		}
		if (validated == false) {
			alert ('One or more required fields are blank.');return false;
		}
	}
	// Instantiate XMLHTTP Object, nothing that hasn't been shown in hundreds of AJAX Books
	req = false;
	try { req = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try {req = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {req = false;}}
	if (!req) req = new XMLHttpRequest();
	var postdata=gatherFields(frmlist, autopost);
	// Construct FORM Data to pass to XMLHTTP object
	varText+='&key='+md5;
	var vdata='&vdata='+escape(varText);
	var pdata='&pdata='+escape(postdata);
	var package='package='+escape(escape(vdata+pdata));
	if(req) {
		document.body.style.cursor='wait';
		req.open('POST',xmlpage);
		req.setRequestHeader('If-Modified-Sinc', 'Sat, 1 Jan 2000 00:00:00 GMT');
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.onreadystatechange = pC;			
		req.send(package);
	}else{
		alert('Your browser does not support AJAX.'); 
	}
}
/*
 *  Process XMLHTTP Object's response
 */
function pC() {
	if(req.readyState == 4) {
		if(req.status == 200) {
			document.body.style.cursor='auto';
			var rT=req.responseText.replace(/!UCPC!~APOST~!UCPC!/g, "'");
			var rX=req.responseXML;
			var json;
			//alert(rT);
			try {
				json = eval("(" + rT + ")");
			}catch(e){
				alert('Bad JSON found:\n'+rT);return false;
			}
			for (var i=0;i<json.response.length-1;i++) {
				var resp=json.response[i];
				var d;
				if(!$(resp.divid)){
					// Create a DIV
					d=document.createElement('DIV');
					document.body.appendChild(d);
					d.id=resp.divid;
				}else{
					d=$(resp.divid);
				}
				d.innerHTML=resp.innerHTML;				
				eventinit(resp.events);
				// Change STYLE and CLASS of element.
				if(resp.refreshStyle=='1') {
					if (resp.className) d.className=resp.className;
					if (resp.cssText) d.style.cssText=resp.cssText;
				}			
				// Bring up the lightbox
				if(resp.modal=='1')initLightBox(resp.divid);
				eval(resp.code);
			}
		}
		if (req.status == 500) {
			alert('An internal server error has occured.  Please refresh the page or try again later.');
		}
		if (req.status !=200 && req.status !=500) {
			alert('Error type '+req.status+' has occured.');
		}
	}
}

function $(elem) {if (document.getElementById(elem)) return document.getElementById(elem);}
function $$(elem) {if (document.getElementsByTagName(elem)) return document.getElementsByTagName(elem);}

var ureq;
var uploading=false;
var uploadid='';
var uploadname='';
function checkUpload() {
	if(ureq.readyState == 4) { if(ureq.status == 200 || req.status == 500) {
		if (ureq.responseText != 'null') {
			var a = eval("(" + ureq.responseText + ")");
			var pctcomplete=Math.floor(a.bytes_uploaded/a.bytes_total * 100);
			var progresstext=$(uploadname+'_progresstext');
			var progressbar_progress=$(uploadname+'_progressbar_progress');
			progresstext.innerHTML='Percent Complete: '+pctcomplete+'%<br />'+
			'Bytes Uploaded: '+a.bytes_uploaded+' ('+(a.speed_average/1024).toFixed(1)+' kB/s)<br />'+
			'Estimated Time Remaining: '+ConvertToTime(a.est_sec)+'<br />'
			progressbar_progress.style.width=pctcomplete+'%';
		}else{
		}
		if (uploading==true) {
			ureq.open('Get','/ucpc/uploadstatus.php?uploadid='+uploadid, true);
			ureq.setRequestHeader('If-Modified-Sinc', 'Sat, 1 Jan 2000 00:00:00 GMT');
			ureq.onreadystatechange = checkUpload;
			ureq.send(null);
		}
	}}
}
function uploadMonitor(id, debug, upid) {
	uploadid=upid;
	uploading=true;
	uploadname=id;
	ureq = false;try { ureq = new ActiveXObject("Msxml2.XMLHTTP");}catch (e) { try {ureq = new ActiveXObject("Microsoft.XMLHTTP");}catch (E) {ureq = false;}}
	if (!ureq) ureq = new XMLHttpRequest();
	ureq.open('Get','/ucpc/uploadstatus.php?uploadid='+uploadid, true);
	ureq.setRequestHeader('If-Modified-Sinc', 'Sat, 1 Jan 2000 00:00:00 GMT');
	ureq.onreadystatechange = checkUpload;
	ureq.send(null);
	//if (debug=="False") {
	$(id+'_progresspanel').style.display='block';
	$(id+'_uploadform').style.display='none';
	//}
	var ifr=$(id+'_uploadpane');
	if (document.addEventListener){
		uploadFn=function(){uploadComplete(id)};
		ifr.contentDocument.addEventListener("DOMContentLoaded", uploadComplete(id, debug), false);
	}else{
		uploadFn=function(){if (ifr.readyState=="complete")uploadComplete(id, debug)}
		ifr.attachEvent("onreadystatechange", uploadFn);
	}
}
function uploadNotDone(id, debug) { uploadComplete(id, debug); }
function uploadComplete(id, debug) {
	var ifr=$(id+'_uploadpane');
	if (ifr.detachEvent){
		ifr.detachEvent('onreadystatechange', uploadFn);
		var xml=ifr.contentWindow.document;
	} else {
		if(ifr.contentWindow.document.getElementById('response')) {
			//ifr.removeEventListener("DOMContentLoaded", uploadComplete(id), false);
			var xml=ifr.contentDocument;
		}else{
			window.setTimeout(function(){uploadNotDone(id, debug);}, 1000);
		}
	} 
	if(xml) {
		uploading=false;
		if (xml.getElementById("response")) {
			var rL = xml.getElementById("response").length;
			var cJ = '';
			var cR = xml.getElementById("response");
			cJ = xml.getElementById("code").innerHTML;
			eval(cJ);
		}
	}
}

function catchEnter(e, button_id)
{
	if (e.keyCode==13) {
		$(button_id).click();
		return false;
	}
}

function gatherFields(frmlist, autopost) {
	var postdata=''			// Start as nothing
	pdarr = new Array(100);		// postdata array
	var pdcount=-1;			// postdata count starts as -1
	var fe=-1;			// set found flag as -1
	if (frmlist.length>0) {
		varflist=frmlist.split(",");
		for (var x=0; x<varflist.length; x++) {
			var odivs = document.getElementsByName(varflist[x]);
			objVal='';
			var mp='';
			for (var y=0; y<odivs.length; y++) {
				currObj=odivs[y];
				if (currObj.name != ''  && ( ((currObj.type == 'checkbox' || currObj.type == 'radio') && currObj.checked == true) || (currObj.type != 'checkbox' && currObj.type != 'radio')) ) {
					objVal=objVal+mp+odivs[y].value
					mp=',';
				}
			}
			var objVal=objVal.replace(/&/g, "~and~");
			var objVal=objVal.replace(/,/g, "~cma~");
			if (objVal !='') postdata=postdata+'&'+varflist[x]+'='+objVal;
		}
	}
	if (autopost==1) {
		// INPUT ELEMENTS
		var odivs = $$("input");
	if (odivs.length > 0)	pd=1;
  for(var i=0; i<odivs.length;i++)
  {
    currObj =  odivs[i];
    if (currObj.name != ''  && ( ((currObj.type == 'checkbox' || currObj.type == 'radio') && currObj.checked == true) || (currObj.type != 'checkbox' && currObj.type != 'radio')) )
    {
      fe=-1;
      for (var xp=0; xp<=pdcount; xp++) if (pdarr[xp][0] == currObj.name) fe=xp;
      if (fe==-1)
      {
        pdcount=pdcount+1;
        fe=pdcount;
        pdarr[fe] = new Array(2);
        pdarr[fe][0] = currObj.name;
        pdarr[fe][1] = '';
      }		
      var objVal=currObj.value;
      var objVal=objVal.replace(/&/g, "~and~");
      var objVal=objVal.replace(/,/g, "~cma~");
      pdarr [fe][0] = currObj.name;	
      if (pdarr[fe][1].length > 0) pdarr[fe][1]=pdarr[fe][1]+', ';
      pdarr [fe][1] = pdarr [fe][1]+objVal;	
    }
  }

// PASSWORD ELEMENTS
  var odivs = $$("password");
  if (odivs.length > 0)	pd=1;
  for(var i=0; i<odivs.length;i++)
  {
    currObj =  odivs[i];
    if (currObj.name != ''  && ( (currObj.type == 'checkbox' && currObj.checked == true) || currObj.type != 'checkbox') )
    {
      fe=-1;
      for (var xp=0; xp<=pdcount; xp++) if (pdarr[xp][0] == currObj.name) fe=xp;
      if (fe==-1)
      {
        pdcount=pdcount+1;
        fe=pdcount;
        pdarr[fe] = new Array(2);
        pdarr[fe][0] = currObj.name;
        pdarr[fe][1] = '';
      }		
      var objVal=currObj.value;
      var objVal=objVal.replace(/&/g, "~and~");
      var objVal=objVal.replace(/,/g, "~cma~");
      pdarr [fe][0] = currObj.name;	
      if (pdarr[fe][1].length > 0) pdarr[fe][1]=pdarr[fe][1]+', ';
      pdarr [fe][1] = pdarr [fe][1]+objVal;	
    }
  }
  for (var x=0; x<=pdcount; x++) postdata = postdata + '&' + pdarr [x][0] + '=' + pdarr [x][1];

// TEXTAREA ELEMENTS
  var odivs = $$("textarea");
  if (odivs.length > 0) pd=1;
  for(var i=0; i<odivs.length;i++)
  {
    currObj =  odivs[i];
    if (currObj.name != '' && currObj.value != '')
    {
      var objVal=currObj.value;
      var objVal=objVal.replace(/&/g, "~and~");
      var objVal=objVal.replace(/,/g, "~cma~");
      postdata = postdata + '&' + currObj.name + '=' + objVal;
    }
  }

// SELECT ELEMENTS
  var odivs = $$("select");
  if (odivs.length > 0) pd=1;
  for(var i=0; i<odivs.length;i++)
  {
    currObj =  odivs[i];
    if (currObj.name != '')
    {

      var mc='';
      var objVal='';
      for (var ii = 0; ii < currObj.options.length; ii++)
      {
        if (currObj.options[ii].selected) {
          objVal=objVal + mc +currObj.options[ii].value;
          var mc=', ';
        }
      }

      var objVal=objVal.replace(/&/g, "~and~");
      var objVal=objVal.replace(/,/g, "~cma~");
      postdata = postdata + '&' + currObj.name + '=' + objVal;
    }
  }
  }

for (var x=0; x<=pdcount; x++) postdata = postdata + '&' + pdarr [x][0] + '=' + pdarr [x][1];
return postdata;
}

var oldprops;
var oldSel;
var oldSelprops;

function actCell(ele) {
	if(ele.className =='dgridSelCell') return;
	oldprops='';
	var sep='';
	var elep=ele.parentNode;
	for(i=0;i<elep.childNodes.length;i++){
		oldprops+=sep+elep.childNodes[i].className;
		sep=',';
		elep.childNodes[i].className='dgridActiveCell';
	}
}
function deactCell(ele) {
	if(ele.className =='dgridSelCell') return;
	var elep=ele.parentNode;
	var backprops=oldprops.split(',');
	for(i=0;i<elep.childNodes.length;i++){
		elep.childNodes[i].className=backprops[i];
	}	
}

function selCell(ele) {
	if(ele.className =='dgridSelCell') return;
	deactCell(ele);
	var sep='';
	if (oldSel) {
		var arrProps=oldSelprops.split(',');
		for(var i=0;i<oldSel.childNodes.length;i++) {
			oldSel.childNodes[i].className=arrProps[i];
		}
	}
	oldSelprops='';
	var elep=ele.parentNode;
	for(i=0;i<elep.childNodes.length;i++){
		oldSelprops+=sep+elep.childNodes[i].className;
		sep=',';
		elep.childNodes[i].className='dgridSelCell';
	}
	oldSel=elep;
}
function actHeader(ele){
	if ((ele.className != 'dgridSortUp') && (ele.className != 'dgridSortDown')) {
		ele.className='dgridActiveHeader';
	}
}
function deactHeader(ele){
	if ((ele.className != 'dgridSortUp') && (ele.className != 'dgridSortDown')) {
		ele.className='dgridHeader';
	}
}

function sorttable(ele) {
	var dir=1;
	if (ele.className=='dgridSortDown') {
		dir=1;
	}else{
		dir=2;
	}
	var elep=ele.parentNode;
	var elet=elep.parentNode;
	var elepos=-1;
	plength=elep.childNodes.length;
	for (i=0;i<plength;i++) {
		if (elep.childNodes[i]==ele) {
			elepos=i;
			if (dir==2) {
				ele.className='dgridSortDown';
			}else{
				ele.className='dgridSortUp';
			}
		}else{
			if (elep.childNodes[i].className != 'resizer') elep.childNodes[i].className='dgridHeader';
		}
	}
	var tlength=elet.childNodes.length;
	var arrRows=new Array(tlength-1);
	for (i=1;i<tlength;i++) {
		arrRows[i-1] = new Array(2);
		arrRows[i-1][0] = elet.childNodes[i].childNodes[elepos].innerHTML;
		arrRows[i-1][1] = elet.childNodes[i];
	}
	for (y=0;y<arrRows.length;y++) {
		for (x=y;x<arrRows.length;x++) {
			if (dir==1){
				if (arrRows[y][0]<arrRows[x][0]) {
					var tmpArr=arrRows[y];
					arrRows[y]=arrRows[x];
					arrRows[x]=tmpArr;
				}
			}else{
				if (arrRows[y][0]>arrRows[x][0]) {
					var tmpArr=arrRows[y];
					arrRows[y]=arrRows[x];
					arrRows[x]=tmpArr;
				}
			}
		}
	}
	for (i=0;i<arrRows.length;i++) {
		elet.appendChild(arrRows[i][1]);	
		for (j=0;j<arrRows[i][1].childNodes.length;j++) {
			if (arrRows[i][1].childNodes[j].className != 'dgridSelCell') {
				if(i % 2==0) {
					arrRows[i][1].childNodes[j].className='odd';
				}else{
					arrRows[i][1].childNodes[j].className='even';
				}
			}
		}
	}
}
function mapLoad(maptarget)
{
  if (GBrowserIsCompatible()) 
  {
    map = new GMap2($(maptarget));
    map.addControl(new GSmallMapControl());
    iconBar = new GIcon();
    iconBar.image = '/images/controls/maps/bar.png';
    iconBar.shadow = '/images/controls/maps/bar_shadow.png';
    iconBar.iconSize = new GSize(32, 32); 
    iconBar.shadowSize = new GSize(59, 32); 
    iconBar.iconAnchor = new GPoint(32, 32); 
    iconBar.infoWindowAnchor = new GPoint(16, 16); 
    iconBar.infoShadowAnchor = new GPoint(13, 13); 

  }
}
var iconBar;
function showAddress(address, latitude, longitude, locName) {
	if (latitude) {
		var gLL = new GLatLng(latitude, longitude, 1);
		var marker = new GMarker(gLL, iconBar);
		map.addOverlay(marker);
		markercount++;
		marks[markercount]=new Array(4);
		marks[markercount][0]=gLL.lat();
		marks[markercount][1]=gLL.lng();
		marks[markercount][2]=marker;
		marks[markercount][3]=address;
		GEvent.addListener(marker, "click", function() { 
			marker.openInfoWindowHtml(unescape(locName.replace(/\+/g," ")))
		});
	}else{
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(address, function(point) {
			if (!point) {
			} else {
				var marker = new GMarker(point, iconBar);
				map.addOverlay(marker);
				markercount++;
				marks[markercount]=new Array(4);
				marks[markercount][0]=point.x;
				marks[markercount][1]=point.y;
				marks[markercount][2]=marker;
				marks[markercount][4]=address;
				GEvent.addListener(marker, "click", function() { 
					marker.openInfoWindowHtml(unescape(locName.replace(/\+/g," ")))
				});
			}
		});
	}
}

function findMark(address, locName) {
	for(i=1;i<marks.length;i++){
		if (marks[i]){
			if (marks[i][3]==address) {
			marks[i][2].openInfoWindowHtml(unescape(locName.replace(/\+/g," ")))
			}
		}
	}

}
function dragwindow(state, ele, e) {
	var el=$(ele);
	if(!e){var e=window.event};
	if (state==1) {
		if (isDragging==true) return false;
		dragEle=el;
		var eleP=el.parentNode;
		eleP.appendChild(dragEle);
		if (isIE==true){
			offsetX=e.clientX-parseInt(dragEle.style.left);
			offsetY=e.clientY-parseInt(dragEle.style.top);
		}else{
			offsetX=e.clientX-parseInt(dragEle.style.left);
			offsetY=e.clientY-parseInt(dragEle.style.top);
		}
		isDragging=true;
		//alert(e.clientX);
		//el.style.left=mouseX+'px';
		//alert(ele);
	}
	if (state==2) {
		isDragging=false;
	}
}
function ConvertToTime(secs){
	time=[0,0,secs];
	for(var i=2;i>0;i--){
	time[i-1]=Math.floor(time[i]/60);
	time[i]=time[i]%/**/60;
	if(time[i]<10)
	time[i]='0'+time[i];
	};
	return time.join(':')
}
var isSliding=false;
var sliderKnob;
var sliderBar;
var slideOffset;

function sliding (eleid, e) {
	if (isSliding) {
		if ($(eleid)) {
			if ($(eleid)==sliderBar && e.srcElement==sliderBar) {
				if(!e) var e=window.event;
				sliderKnob.style.left=e.offsetX-slideOffset;
				return false;
			}
		}	
	}
}
function sliderMove(eleid, orientation, e) {
	if (!isSliding) {
		if ($(eleid)) {
			var ele=$(eleid);
			sliderKnob=ele;
			sliderBar=ele.parentNode;
			var oX=0;
			var oY=0;
			if(!e) var e=window.event;
			isSliding=true;
			slideOffset=e.offsetX;
		}
	}
}