page_command = "";
homepage = ""

var mx;
var my;
var mt = ""
var mouse_x;
var mouse_y;

// xml_lib version 1.1

var xml_lag = 0;
var xml_error_report = false;
var xml_busy = false;

function loadpage( page )
{
  self.location = page;
}

function get_screen()
{
	ck = getCookie("prefs");
	sc = screen.availWidth+"-"+screen.availHeight;
	if(document.getElementById('db')) {
		document.getElementById('db').innerHTML = sc;
	}
//	if(ck == null)
//	{
		setCookie("prefs",sc,20,null,cookie_domain,0);
//	}
}


function home()
{
	self.parent.location = "http://" + homepage + "/" + page_command;
}



function sethome( page, cookie1, cookie2, current_domain, prefs )
{
  homepage = page;
  ident_cookie = cookie1;
  session_cookie = cookie2;
  prefs_cookie = prefs;
  cookie_domain = current_domain;
}



function set_page( page )
{
  page_command = page;
  home();
}

function set_page_current(page_command)
{
	self.location = "http://" + homepage + "/" + page_command;
}


function toggle_vis( inum )
{
	if(document.getElementById(inum)) {
		if( document.getElementById(inum).style.visibility == 'hidden' )
		 {
			document.getElementById(inum).style.visibility = 'visible';
			document.getElementById(inum).style.position = 'relative';
		 } else {
			document.getElementById(inum).style.visibility = 'hidden';
			document.getElementById(inum).style.position = 'absolute';
		 }
	 }
}

function toggle_visibility( inum )
{
	if( document.getElementById(inum).style.visibility == 'hidden' )
	 {
		document.getElementById(inum).style.visibility = 'visible';
	 } else {
		document.getElementById(inum).style.visibility = 'hidden';
	 }
}



function toggle_select( inum )
{
	iname = 'image_list' + inum;
 if( document.getElementById(iname).style.visibility == 'hidden' ) {
  document.getElementById(iname).style.visibility = 'visible';
  document.getElementById(iname).style.position = 'relative';
 } else {
  document.getElementById(iname).style.visibility = 'hidden';
  document.getElementById(iname).style.position = 'absolute';
 }
}

/*******************************************************************************************
 * These functions make it possible to drag and drop an item.
 * dragdrop is called to set up the object ot be dragged
 *  item is the ID of the object.
 *  event is the event handler passed from the object clicked on
 *-----------------------------------------------------------------------------------------
 * To use this function, place the script: onclick="dragdrop({itemname},event)"
 * You must also add: onmousemove="dragloop(event)" 
 *  to your body tag. It should look something like: <body onmousemove="dragloop(event)">
 ******************************************************************************************/

function dragdrop(item, event)
{
	if( mt == "" )
	 {
		mt = item;
		f = document.getElementById(mt).style.left;
		x = new Number(f.substr(0,f.search("px")));
		f = document.getElementById(mt).style.top;
		y = new Number(f.substr(0,f.search("px")));
		mx = event.clientX - x;
		my = event.clientY - y;
	 } else {
		mt = "";
	 }
}

function dragloop(event)
{
	mouse_x = event.clientX;
	mouse_y = event.clientY;
	if(mt != "")
	 {
		document.getElementById(mt).style.visibility="visible";
		document.getElementById(mt).style.position="absolute";
		document.getElementById(mt).style.left=(event.clientX-mx)+"px";
		document.getElementById(mt).style.top=(event.clientY-my)+"px";
	}
}

function cleardrag()
 {
	mt = "";
 }

/********************** END DRAG AND DROP FUNTIONS  ***************************************/




function check_pass_complexity(pass,item,confirm)
{
	var lowercaseletter = /[a-z]/.test(pass);
	var uppercaseletter = /[A-Z]/.test(pass);
	var digit 			= /\d/.test(pass);
	var odmask			= /[~!@#$%^&*()]/;
	var odds			= odmask.test(pass);
					
	var low_security    = lowercaseletter || uppercaseletter || digit;
	var med_security    = (lowercaseletter && uppercaseletter) || (lowercaseletter && digit) || (digit && uppercaseletter);
	var high_security   = lowercaseletter && uppercaseletter && digit;
	var higher_security = high_security && odds && pass.length >= 8;
	
	if(pass == "")
	 {
		document.getElementById(item).style.background = "#000000";
	 } else {
		document.getElementById(item).style.color = "#000000";
	 }
	if ( low_security )
	 {
		document.getElementById(item).style.background = "#FF0000";
		security = "low";
	 }
	if ( med_security )
	 {
		document.getElementById(item).style.background = "#FF8040";
		security = "medium";
	 }
	if ( high_security )
	 {
		document.getElementById(item).style.background = "#FFFF00";
		security = "high";
	 }
	if ( higher_security )
	 {
		document.getElementById(item).style.background = "#00FF00";
		security = "veryhigh";
	 }
//	if(document.getElementById(confirm).style.background == "00FF00")
//	 {
//		setCookie("compcheck",security,300,null,cookie_domain,0);
//	 }
}


function test_pass(item,confirm)
{
	if(document.getElementById(item).value == document.getElementById(confirm).value)
	 {
		document.getElementById(confirm).style.background = "#00FF00";
		document.getElementById(confirm).style.color = "#000000";
	 } else {
		document.getElementById(confirm).style.background = "#FF0000";
		document.getElementById(confirm).style.color = "#000000";
	 }
	check_pass_complexity(document.getElementById(item).value,item,confirm);
}





function getCookie( name ) {
//  var start = document.cookie.indexOf( name + "=" );
  var start = document.cookie.indexOf( name + "=" );
  var len = start + name.length + 1;
  if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
    return null;
  }
  if ( start == -1 ) return null;
  var end = document.cookie.indexOf( ";", len );
  if ( end == -1 ) end = document.cookie.length;
  return unescape( document.cookie.substring( len, end ) );
}


function setCookie( name, value, expires, path, domain, secure ) {
  var today = new Date();
  today.setTime( today.getTime() );
  if ( expires ) {
//    expires = expires * 1000 * 60 * 60 * 24;
    expires = expires * 1000;
  }
  var expires_date = new Date( today.getTime() + (expires) );
  document.cookie = name+"="+escape( value ) +
    ( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
}

function deleteCookie( name, path, domain ) {
  if ( getCookie( name ) ) document.cookie = name + "=" +
    ( ( path ) ? ";path=" + path : "") +
    ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
function overbar( item)
 {
	document.getElementById(item).className = "bar_item_highlight";
	document.getElementById(item).style.cursor = "pointer";
 }


function outbar(item)
 {
	document.getElementById(item).className = "bar_item";
	document.getElementById(item).style.cursor = "auto";
 }

function fix_brackets(thevar)
 {	
 	var outstr = "";
	lng = thevar.length;
	for(x = 0;x < lng;x++)
	 {
		v1 = thevar.charAt(x);
		switch(v1)
		 {
			case "[" : 
				rp = "<";
				break;
		
			case "]" :
				rp = ">";
				break;
		
			default :
				rp = v1;
				break;
		 }
		outstr = outstr + rp;
	 }
	return outstr;
 }

function convert_line_returns(thevar)
 {	
 	var outstr = "";
	lng = thevar.length;
	for(x = 0;x < lng;x++)
	 {
		v1 = thevar.charAt(x);
		switch(v1)
		 {
			case "\n" :
				rp = "<br />";
				break;
		
			default :
				rp = v1;
				break;
		 }
		outstr = outstr + rp;
	 }
	return outstr;
 }

function strip_line_returns(thevar)
 {	
 	var outstr = "";
	lng = thevar.length;
	for(x = 0;x < lng;x++)
	 {
		v1 = thevar.charAt(x);
		switch(v1)
		 {
			case "\n" :
			case "\r" :
				rp = "";
				break;
		
			default :
				rp = v1;
				break;
		 }
		outstr = outstr + rp;
	 }
	return outstr;
 }



/*******************************************************************************************
 * These functions are for displaying the error console
 *-----------------------------------------------------------------------------------------
 ******************************************************************************************/

function displayerror(v,display)
 {
	if(document.getElementById("error_console"))
	 {
	 	if(document.getElementById("error_console").style.visibility = "hidden")
		 {
			document.getElementById("error_console").style.top = "200px";
			document.getElementById("error_console").style.left = "400px";
			document.getElementById("error_console").style.visibility = "visible";
		 }
		switch(v)
		 {
			case "dkey" :
				document.getElementById("dkey").innerHTML = display;
				break;
			case "v1" :
				document.getElementById("v1").innerHTML = display;
				break;
			case "v2" :
				document.getElementById("v2").innerHTML = display;
				break;
			case "v3" :
				document.getElementById("v3").innerHTML = display;
				break;
			case "v4" :
				document.getElementById("v4").innerHTML = display;
				break;
			case "v5" :
				document.getElementById("v5").innerHTML = display;
				break;
			case "v6" :
				document.getElementById("v6").innerHTML = display;
				break;
			case "v7" :
				document.getElementById("v7").innerHTML = display;
				break;
			case "v1_title" :
				document.getElementById("v1_title").innerHTML = display;
				break;
			case "v2_title" :
				document.getElementById("v2_title").innerHTML = display;
				break;
			case "v3_title" :
				document.getElementById("v3_title").innerHTML = display;
				break;
			case "v4_title" :
				document.getElementById("v4_title").innerHTML = display;
				break;
			case "v5_title" :
				document.getElementById("v5_title").innerHTML = display;
				break;
			case "v6_title" :
				document.getElementById("v6_title").innerHTML = display;
				break;
			case "v7_title" :
				document.getElementById("v7_title").innerHTML = display;
				break;
		 }
	 }
 }
 
 
 // xml_lib version 1.1
 
if(typeof(XMLHttpRequest)!='undefined'){
	var getXMLHttpObj = function(){ return new XMLHttpRequest(); }
} else {
	var getXMLHttpObj = function(){
		var activeXObjects = ['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
		for(var i=0; i<activeXObjects.length; i++){
			try{
				return new ActiveXObject(activeXObjects[i]);
			}catch(err){}
		}
	}
}
var xmlhttp = getXMLHttpObj();

function loadXMLDoc(url)
{
	xml_busy = true;
	if(xml_error_report) {
		displayerror("v1",url);
		displayerror("v1_title","URL");
	 }
	if (xmlhttp!=null) {
		xmlhttp.onreadystatechange=state_Change;
		xmlhttp.open("GET",url,true);
		xmlhttp.send(null); }
	else {
		alert("Your browser does not support XMLHTTP.");
	 }
}

function postXMLDoc(url,parameters)
 {
	xml_busy = true;
	if(xml_error_report) {
		displayerror("v1",url);
		displayerror("v1_title","URL");
	 }
	if (xmlhttp!=null)  {
	 	if(document.getElementById("lag_indicator") != null) {
			document.getElementById("lag_indicator").backgroundColor = "#804040";
		 }
		xmlhttp.onreadystatechange=state_Change;
		xmlhttp.open("POST",url,true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
		xmlhttp.send(parameters); }
	else {
		alert("Your browser does not support XMLHTTP.");
 	 }
 }

function state_Change()
 {
/**/
	if(xmlhttp.readyState == '1') {
		xml_lag = xml_lag + 1;
	 }
/**/
	if(xml_error_report) {
		displayerror("v2",xmlhttp.readyState);
		displayerror("v2_title","xmlhttp.readyState");
	 }
	if(xmlhttp.readyState == '4') { // 4 = "loaded"
		if(xml_error_report) {
			displayerror("v3",xmlhttp.status);
			displayerror("v3_title","xmlhttp.status");
		 }
		if (xmlhttp.status==200) {// 200 = "OK"
			var xmldata=xmlhttp.responseXML //retrieve result as an XML object
			if(xmldata != null) {
				var item = "";
				var value = "";
				var option = "";
				var append_flag = false;
				var field_flag = false;
				var setHTML =xmldata.getElementsByTagName("set_html");
				for(i = 0;i < setHTML.length;i++) {
					item = setHTML[i].getElementsByTagName("item")[0].firstChild.nodeValue;
					value = setHTML[i].getElementsByTagName("value")[0].firstChild.nodeValue;
					option = setHTML[i].getElementsByTagName("option")[0].firstChild.nodeValue;
					append_flag = false;
					field_flag = false;
					switch(option) {
						case "convert_brackets_append" :
							append_flag = true;
						case "convert_brackets" :
							value = fix_brackets(value);
							break;
						case "convert_brackets_append" :
							append_flag = true;
							break;
						case "field_val" :
							field_flag = true;
							break;
					 }
					if(xml_error_report) {
						displayerror("v4",item);
						displayerror("v4_title","item");
						displayerror("v5",value);
						displayerror("v5_title","value");
						displayerror("v6",option);
						displayerror("v6_title","option");
						displayerror("v7",field_flag);
						displayerror("v7_title","field_flag");
					 }
					if(document.getElementById(item)) {
					 	if(append_flag) {
							document.getElementById(item).innerHTML += value;
//							document.getElementById(item).innerHTML += value+"<br />";
						 } else {
						 	if(field_flag) {
								document.getElementById(item).value = value; }
							else {
								document.getElementById(item).innerHTML = value;
							 }
						 }
					 }
					else {
					 }
					if(item == "chat_text") {
					 	if(document.getElementById("chat_text")) {
							document.getElementById("chat_text").scrollTop = 200000;
						 }
					 }
				 }
				var cHTML =xmldata.getElementsByTagName("set_class");
				for(xx = 0;xx < cHTML.length;xx++) {
					item = cHTML[xx].getElementsByTagName("item")[0].firstChild.nodeValue;
					value = cHTML[xx].getElementsByTagName("value")[0].firstChild.nodeValue;
					if(document.getElementById(item)) {
						document.getElementById(item).className = value;
					 }
				 }
			 }
			xml_busy = false;
			xml_lag = 0;
		 }
	 }
 }
