// Note: this function does not work with ASP.Net controls!
/*
function clearText(thefield)
		{
			if (thefield.defaultValue==thefield.value)
			thefield.value = ""
		} 	
*/

// clear field if value in textbox is default specified
// (otherwise leave user entered text alone)
function clearText2(theField,theDefault)
{  
    if (theDefault == theField.value)
        theField.value = "";
}

// hide or show an element
function toggle(targetId) {
	target=document.getElementById(targetId);
	if (target.style.display == "none")	{
		target.style.display = "";
	} else {
		target.style.display = "none";
	}
}

// show a div in "block" mode
function show(targetId) {
	document.getElementById(targetId).style.display = "block";
}

// we don't use $(..) as we may not (yet) have prototype loaded!
function showAJAXLoading(divID) {
    document.getElementById(divID).innerHTML = "<h1>Loading...</h1>";
}

function hideAJAXLoading(divID) {
    document.getElementById(divID).innerHTML = "";
}

// returns the string text for that <tagName>
function getXmlResponseData(xmlDocOrElement,tagName) {
    // call with response.responseXML.documentElement;
    var n = xmlDocOrElement.getElementsByTagName(tagName)[0].firstChild.nodeValue;
    return n;
}

// returns the data table returned from our AJAX web service
function getXmlResponseTable(response) {
    // we use an ASP.Net web service, with data table stored in variable "datatable"
    /*
    <AJAXResponse>
        <status>OK</status>
        <errmsg/>
        <response/>
        <datatable>
            <xs:schema id="NewDataSet">
            <diffgr:diffgram>
                <DocumentElement>
                    <Data diffgr:id="Data1" msdata:rowOrder="0">
                        <CommentID>3</CommentID>
                        <Comment> <!-- Test Comment --> </Comment>
                    </Data>
     */
    // now, walk the XML
    
    var xml_datatable = response.getElementsByTagName('datatable')[0];
    alert("gettable: table: " + xml_datatable);
    
    var xml_diffgr = xml_datatable.getElementsByTagName('diffgram')[0];
    alert("gettable: diffgr: " + xml_diffgr);
    
    var xml_de = xml_diffgr.getElementsByTagName('DocumentElement')[0];
    alert("gettable: de: " + xml_de);
    
    // now, return documentElement
    return xml_de;
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  return '';
}

function handleEnterKey_Btn(btnToPress) {
    // txtBox1.Attributes.Add("onkeydown","return handleEnterKey('" + this.btnSubmit.ClientID" + ');");
    if (event.which || event.keyCode) {
        if ((event.which == 13) || (event.keyCode == 13)) {
          document.getElementById(btnToPress).click();
          return false;
        }
    } else {
        return true
    };
}
function handleEnterKey_Func(functionToCall, event) {
    // don't pass parantheses with functionToCall!!
    // txtBox1.Attributes.Add("onkeydown","return handleEnterKey(doLogin);");
    if (event.which || event.keyCode) {
        if ((event.which == 13) || (event.keyCode == 13)) {
          functionToCall();
          return false;
        }
    } else {
        return true
    };
}

function replaceChar(value, charToStrip, replaceWith) {
    var re = new RegExp(charToStrip, "gi");
    var s = value.replace(re, replaceWith);
    return s;
}

function hideBtn(btnID) {
    $(btnID).style.display = 'none'; // hide it!
}
function showBtn(btnID) {
    $(btnID).style.display = ''; // show it!
}

function attachEvent(object, eventName, functionToCall) {
    if (object.addEventListener) 
        object.addEventListener(eventName, functionToCall, false)
    else if (object.attachEvent)
        object.attachEvent('on' + eventName, functionToCall);
}

function stripNonNumbers(value) {
    var ret="";
    for (i=0;i<value.length;i++) {
        if ("0123456789".indexOf(value.substr(i,1)) > -1)
            ret += value.substr(i,1);
    }
    return ret;
}

function formatPhone(value) {
    var ret="";
    value = stripNonNumbers(value);
    if (value.length > 10) {
        // (303) 623-5500 x111
        ret = "(" + value.substr(0,3) + ") " + value.substr(3,3) + "-" + value.substr(6,4) + " x" + value.substr(10);
    } else if (value.length == 10) {
        // (303) 623-5500
        ret = "(" + value.substr(0,3) + ") " + value.substr(3,3) + "-" + value.substr(6,4);
    } else if (value.length > 5) {
        // 123-4567
        ret = value.substr(0,3) + "-" + value.substr(3);
    } else {
        // 12345
        ret = value;
    }
    return ret;
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
	        curleft += obj.offsetLeft
	        curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

function showMove(src, dest, offsetX, offsetY)
{
    var target = $(dest);
    var pos = findPos(src);
    var x = pos[0] + (!isNaN(offsetX) ? offsetX : 0);
    var y = pos[1] + src.offsetHeight + (!isNaN(offsetY) ? offsetY : 0);
    target.style.position = 'absolute';
    target.style.left = x + "px";
    target.style.top = y + "px";
    //if(target.style.background.blank() && target.style.backgroundColor.blank() && target.style.backgroundImage.blank())
        //target.style.background = "White";
    if(target.style.display != "none")
        target.style.display = "none";
    else
        target.style.display = "";
}
