function addLoadEvent(func){
  var oldonload = window.onload;
  if(typeof window.onload != 'function'){
    window.onload = func;
  }
  else{
    window.onload = function(){
      oldonload();
      func();
    }
  }
}

function hMenu(context){
  var li = $('#hmenu li');
  for (var i=0; i<li.length; i++){
    if (li[i].id.indexOf('get') != -1){
      li[i].onmouseover = function(){
        $('#'+this.id.replace("get_", "")).style.display='block';
        ieSelect('hidden');
      }
      li[i].onmouseout = function(){
        $('#'+this.id.replace("get_", "")).style.display='none';
        ieSelect('');
      } 
    }
  }
}

function getCursor(e) {
  e = e || window.event;
  return {"x": e.clientX, "y": e.clientY};
}

function getScrollCursor(e){
  e = e || window.event;
	var curScrollX = (e.pageX)? e.pageX : e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	var curScrollY = (e.pageY)? e.pageY : e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  return {'x': curScrollX, 'y': curScrollY};
}

function getWindowSize(){
  windowWidth =  window.innerWidth;
  windowWidth = (windowWidth)? windowWidth : document.documentElement.clientWidth;
  windowWidth = (windowWidth)? windowWidth : document.body.clientWidth;
  windowHeight =  window.innerHeight;
  windowHeight = (windowHeight)? windowHeight: document.documentElement.clientHeight;
  windowHeight = (windowHeight)? windowHeight: document.body.clientHeight;  
  return {'width': windowWidth, 'height': windowHeight};
}

function getPageSize(){
  var windowSize = getWindowSize()
  var xScroll = document.body.scrollWidth;
	var yScroll = (window.innerHeight && window.scrollMaxY)? window.innerHeight + window.scrollMaxY : document.body.scrollHeight;
	var pageWidth = (xScroll < windowSize.width)? windowSize.width : xScroll;  
  var pageHeight = (yScroll < windowSize.height)? windowSize.height : yScroll;
  return {'width': pageWidth, 'height': pageHeight};
}

function getPageScroll(){
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ){//Netscape compliant    
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ){//DOM compliant    
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return {'left': scrOfX, 'top': scrOfY};
}


// The Change Class
function changeClass(context,el) {
  var tag = el.tagName;
  var clas = el.className; 
  if (clas.indexOf("_on") == -1){
    var link = $(context+' '+tag);
    for (i=0; i<link.length; i++) {
      if (link[i].className == clas+'_on') link[i].className  = clas;
      el.className = clas+'_on';
    }
  }
}

function hideSelect(state) {
selects = document.getElementsByTagName("select");
  for (i=0; i<selects.length; i++) {
    selects[i].style.visibility = state;
  }
}


// hideSelect for ie
function ieSelect(view){
  var version=0
  if (navigator.appVersion.indexOf("MSIE")!=-1){
    var temp=navigator.appVersion.split("MSIE");
    version=parseFloat(temp[1]);
    if (version<=6){
    var selects = document.getElementsByTagName("select");
      for (i=0; i<selects.length; i++) {    
        selects[i].style.visibility = view;
      }
    }
  }
}

function ajaxRequest(url, variables, action){

  var objXhr = false;

  if (window.XMLHttpRequest){objXhr = new XMLHttpRequest();}
   
  else if (window.ActiveXObject) {
    var ieXHR = new Array(
    "Msxml2.XMLHTTP.7.0","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<ieXHR.length; i++) {
			try{
				objXhr = new ActiveXObject(ieXHR[i]);
				break;
			}catch(e){}
		}
  } 
    
	if(objXhr) {
    
    if(variables==null){objXhr.open("GET",url,true);}

    if(variables!=null){	 
      objXhr.open("POST",url,true);
      objXhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
    }
    
    if(action){
		  objXhr.onreadystatechange = function () {
			  if (objXhr.readyState == 4) {
				  if (objXhr.status == 200) {
            action(objXhr);
					}else{alert('failed connection')}
				}
		  }
    }   
    objXhr.send(variables);
	}else{return false}
}

function $(selector){

  if(/^#/.test(selector) && !/\s/.test(selector)){// id
    var getId = selector.replace(/#/,''); 
	  return document.getElementById(getId);
  }else{ // tag ou class  
     
    if(/\./.test(selector)){// class         
      var context = (/\s/.test(selector))? $(selector.split(/\s/)[0]) : document;   
      var tagOrStyle = (/\s/.test(selector))? selector.split(/\s/)[1] : selector;    
      var styleName = (/^\./.test(tagOrStyle))? tagOrStyle.replace(/\./,'') : tagOrStyle.split(/\./)[1];
      var tagName = (/^\./.test(tagOrStyle))? "*" : tagOrStyle.split(/\./)[0];      
    }else{// tag  
      var context = (/\s/.test(selector))? $(selector.split(/\s/)[0]) : document;      
      var tagName = (/\s/.test(selector))? selector.split(/\s/)[1] : selector;       
    }

    var tagElements = new Array();
    var tag = context.getElementsByTagName(tagName);
    var tag_length = tag.length;
  	
    for (i=0;i<tag_length; i++) {
      if(styleName){
        if(RegExp("(^|\\s)"+styleName+"(\\s|$)").test(tag[i].className)){
          tagElements.push(tag[i]);
        }
      }else{
        tagElements.push(tag[i]);
      }
    }
  return tagElements;
  }
   	
}
