/************ global js variables   ****************************/
var search_mode = "basic";        // the default search mode is basic
var metro_id = "San Diego";       // the default metro id
//document.onkeyup = KeyCheck;  // key press will be tracked to enable mouse based navigation

var preloader = '<div align="center" class="basic smaller"><br><br><br><img src="images/load.gif"><hr width="200">The Frog Hog tool is retrieving your info . . .</div>';


/// splashing div
function SplashObject(object_id,text,wait_time,fade_time,bgcolor,left,top,right,bottom)
{
	document.getElementById(object_id).style.left = left;
	document.getElementById(object_id).style.top = top;
	document.getElementById(object_id).style.right = right;
	document.getElementById(object_id).style.bottom = bottom;
	document.getElementById(object_id).style.background = bgcolor; 
	document.getElementById(object_id).innerHTML = text;
	ShowObject(object_id);
	ChangeOpacity(object_id, 98, 100, wait_time);
	setTimeout("ChangeOpacity('"+object_id+"', 100, 0, '"+fade_time+"')",wait_time);	
}


function ChangeOpacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("ChangeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("ChangeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function ChangeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

// getting variables from url
function GetUrlVariables()
{
	var locate = window.location;
	document.getElementById("page_id").value = locate;
	var text = document.getElementById("page_id").value;
	text = ReplaceChars(text,"?","&");
	_Delineate(text);
}
function _Delineate(str)
{
var var_start = "0";
var var_stop = "0";
var_start = var_start + str.indexOf("&") + 1;
var_stop = var_stop + str.indexOf("=");

}



/// serves as key catcher
function KeyCheck(e)
{
   var KeyID = (window.event) ? event.keyCode : e.keyCode;
   alert(KeyID);
}

// gataway to php
function PostVars(vars,element_id,preloader)
{
	var xmlHttp = GetXmlHttpObject();
	var url="___ajax-gateway.php?sid="+Math.random()+vars;
	xmlHttp.onreadystatechange=function () 
	{ 	
		if (xmlHttp.readyState==4)
		{
				if (element_id!="") 
					{ document.getElementById(element_id).innerHTML = xmlHttp.responseText; }
				else { refreshPrice(); }
			delete xmlHttp; 
		}	
		else if(preloader!="")
			{ document.getElementById(element_id).innerHTML = preloader; }
	}
	xmlHttp.open("GET",url,true);	 xmlHttp.send(null);  
}

///////////////////////// tech functions


////////// sliding objects.....
var timerlen = 5;
var slideAniLen = 250;

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

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; // cannot slide up something that is already hidden

        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]);

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

        return;
}
// sliding objecst: end



// internal AJAX function
function GetXmlHttpObject()
{
var xmlHttp=null;
try { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari
catch (e)  {  // Internet Explorer
try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } }
return xmlHttp;
}

// replaces characters
function ReplaceChars(entry,out,add) {
temp = "" + entry;

while (temp.indexOf(out)>-1) {
pos= temp.indexOf(out);
temp = "" + (temp.substring(0, pos) + add + 
temp.substring((pos + out.length), temp.length));
}
return(temp);
}


// hides object
function HideObject(id)
{ document.getElementById(id).style.display = "none"; }

// unhides object as a block
function ShowObject(id)
{ document.getElementById(id).style.display = "block"; }

// unhides object as inline
function InlineObject(id)
{ document.getElementById(id).style.display = "inline"; }

function RevealObject(id)
{ document.getElementById(id).style.display = ""; }

function ToogleObject(id)
{
	var style2 = document.getElementById(id).style;
	if (style2.display == "none") { style2.display = "block"; }
	else { style2.display = "none"; }
}

// opens up new window
function NewWin(id,x,y) {
	if((x*1 == NaN) || (x == "")) x = 800;
	if((y*1 == NaN) || (y == ""))  y = 400;
	window.open("_popup.php?id="+id, "Langas", "resizable=yes,scrollbars=yes,status=no,menubar=yes,titlebar,height="+y+",width="+x+"");
}

// redirects to specified address
function GoTo(loc) { window.location.href = loc; }

// confirms action
function ConfirmAction(actionDescription,url)
	{  if(window.confirm("Are you sure you want "+actionDescription)){GoTo(""+url+"");}  	}
	
// gets user input via prompt
function EnterText(promptTitle,confirmText,url,defaultText)
{
	var answer = prompt (promptTitle,defaultText)
	if (answer != null) {ConfirmAction(confirmText+"\n\n "+answer,url+answer);}
}

// checks whether email address is properly formated
function CheckEmail(email)
{
	var testresults
	var str=email
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str))
	testresults=true
	else{
	testresults=false
	}
	return (testresults)
}



	
	
////////////////// mm functions
	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];}
}
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];}}
}

//////////////////// browser detection
/*
BrowserDetect.init();
document.write('<p class="accent">You\'re using ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' on ' + BrowserDetect.OS + '!</p>');
*/

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

