// JavaScript Document
function writeHTML(html){
	document.write(html);
}

function writeHTML2(dest, html){
	dest.innerHTML = html;
}

function focar(elem, texto){
	if(elem.value == texto){
		elem.value = "";
		elem.className = elem.className.replace(/\s?faded/, "");
	}
}

function desfocar(elem, texto){
	if(elem.value.length == 0){
		elem.value = texto;
		elem.className += " faded";
	}
}

function getElementPosition(elemID) {
    var offsetTrail = document.getElementById(elemID);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && 
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return {left:offsetLeft, top:offsetTop};
}

// Browser Window Size and Position
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
// you may copy these functions but please keep the copyright notice as well
function pageVisibleWidth() {
	return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?       document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
} 
function pageVisibleHeight() {
	return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
} 
/*function posLeft() {
	return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
} 
function posTop() {
	return typeof window.pageYOffset != 'undefined' ?  window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
} 
function posRight() {
	return posLeft()+pageWidth();
} 
function posBottom() {
	return posTop()+pageHeight();
}*/
                    

var IE = document.all?true:false;
function getMouseXY(e) {
	
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  return {x:tempX, y:tempY};
}

Array.prototype.in_array = function(search_term) {
  var i = this.length;
  if (i > 0) {
	 do {
		if (this[i] === search_term) {
		   return true;
		}
	 } while (i--);
  }
  return false;
}

//poe uma combobox seleccionada no valor
function selectCombo(cmb, valor){
	for(i=0;i<cmb.options.length;i++){
		if(cmb.options[i].value == valor){
			cmb.selectedIndex = i;
			break;
		}
	}
}

function isNumeric(value){
	/* summary:
	 *   Returns true if value can be interpreted as a number
	 * value: Any literal value or object instance.
	 */

	/* examples:
	 *   dojo.lang.isNumeric(3);                 // returns true
	 *   dojo.lang.isNumeric("3");               // returns true
	 *   dojo.lang.isNumeric(new Number(3));     // returns true
	 *   dojo.lang.isNumeric(new String("3"));   // returns true
	 *
	 *   dojo.lang.isNumeric(3/0);               // returns false
	 *   dojo.lang.isNumeric("foo");             // returns false
	 *   dojo.lang.isNumeric(new Number("foo")); // returns false
	 *   dojo.lang.isNumeric(false);             // returns false
	 *   dojo.lang.isNumeric(true);              // returns false
	 */
	return (!isNaN(value)
		&& isFinite(value)
		&& (value != null)
/*		&& !dojo.lang.isBoolean(value)
		&& !dojo.lang.isArray(value)*/
		&& !/^\s*$/.test(value)
	);	//	boolean
}
function limparCombo(cmb){
	while (cmb.length> 0)
		cmb.remove(0);		
}

function trace(str){
	var dib = document.getElementById("divTracex");
	dib.innerHTML += str + "<br />";
}

function getElementsByStyleClass (className) {
	var all = document.all ? document.all :	document.getElementsByTagName('*');
	var elements = new Array();
	for (var e = 0; e < all.length; e++)
		if (all[e].className == className)
			elements[elements.length] = all[e];
	return elements;
}

function loadGetVars(){ //mete as variaveis GET num array de forma a serem acessiveis com document.$_GET['var']
   document.$_GET = [];
   var urlHalves = String(document.location).split('?');
   if(urlHalves[1]){
      var urlVars = urlHalves[1].split('&');
      for(var i=0; i<=(urlVars.length); i++){
         if(urlVars[i]){
            var urlVarPair = urlVars[i].split('=');
            document.$_GET[urlVarPair[0]] = urlVarPair[1];
         }
      }
   }
}
