﻿var utlBrowser;
var utlBVersion;
var utlBV;
function utl_detectBrowser(){
	
	var rv = -1;
	var ua = navigator.userAgent;
	var re;
	if (navigator.appName == 'Microsoft Internet Explorer')
  {
    utlBrowser = 'IE';
    
    re  = new RegExp("MSIE ([0-9]{1,})[\.0-9]{0,}");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
      
  }else if(navigator.appName == 'Netscape'){
  	utlBrowser = 'FF';
  	re  = new RegExp("Firefox/([0-9]{1,})[\.0-9]{0,}");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }else if(navigator.appName == 'Opera'){
  	utlBrowser = 'OP';
  	re  = new RegExp("Opera/([0-9]{1,})[\.0-9]{0,}");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  
	utlBVersion = rv;
 	utlBV = utlBrowser+utlBVersion
}
function utl_getPosition(el){
	var cX = cY = 0;
	var p = el;
	var str='';
	if(p.offsetParent){
		do{
			cX += p.offsetLeft;
			cY += p.offsetTop;
			str = p.tagName+'('+p.offsetLeft+')'+'>>' +str;
		}while(p = p.offsetParent);
	}
	this.x = cX;
	this.y= cY;
}
function utl_getPageHeight(){
	if(window.innerHeight) return window.innerHeight;
	if(document.body.clientHeight) return document.body.clientHeight;
	return (null);
}
function utl_getPageWidth(){
	if(window.innerWidth)	return window.innerWidth;
	if(document.body.clientWidth)	return document.body.clientWidth;
	return (null); 
}
function utl_getScrollXY() {
  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 [ scrOfX, scrOfY ];
}
//returns an object
function utl_viewport(){
	var windowW = (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth; 
	var windowH = (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight; 
	var scrollX = (document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft; 
	var scrollY = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop; 
	var pageW = (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth; 
	var pageH = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
	return {
		windowW : windowW,
		windowH : windowH,
		pageW : pageW,
		pageH : pageH,
		scrollX : scrollX,
		scrollY : scrollY
	}
}
function tooltip_hide(el){
	if(!el) return;
	if(el.type != 'text') return;
	var tooltip = el.getAttribute('tooltip');
	if((typeof(tooltip) != 'string') || (tooltip == '')) return;
	
	if(el.value == tooltip){
		el.value = '';
		el.style.color = '';
	}
}
function tooltip_show(el){
	if(!el) return false;
	if(el.type != 'text') return false;
	var tooltip = el.getAttribute('tooltip');
	if((typeof(tooltip) != 'string') || (tooltip == '')) return false;
	
	if(el.value == '' || el.value==tooltip){
		el.style.color = '#CCC';
		el.value = tooltip;
	}
}
function hint_create(el, type, msg, no_autohide, oX, oY){
	if(!el) return false;
	if($(el.getAttribute('hintViewer'))) el = $(el.getAttribute('hintViewer'));
	var parentEl = document.body;
	if(el.hintElement){
		parentEl.removeChild(el.hintElement);
		el.hintElement = null;
	}
	if(el.getAttribute('hintMsg')) msg = el.getAttribute('hintMsg');
	if(!el.offsetParent) return false;
	if(type == 'none') return false;
	if($(msg) != null) msg = $(msg).innerHTML;
	if(msg=='') return false;
	var pos = new utl_getPosition(el);
	/*var pos = new Object;
	pos.x = 0;
	pos.y = 0;*/
	var cname = 'msg '+type;
	var div = document.createElement('DIV');
	var img = document.createElement('IMG');
	
	img.src = '/img/hint_arrow_'+type+'.gif';
	div.id = 'hint'+Math.round(Math.random()*10000000);
	div.className = cname;
	div.innerHTML = msg;
	div.ondblclick = function(){hint_remove(this.id);};
	div.forElement = el;
	div.appendChild(img);
	img.style.position = 'absolute';

	img.style.bottom = '-6px';
	img.style.left = '10px';
	parentEl.appendChild(div);
	if(div.offsetWidth > 200) div.style.width = "200px";
	
	if(typeof(oX)=='undefined') oX = 10;
	if(typeof(oY)=='undefined') oY = -2;
	
	div.style.top = (pos.y - div.offsetHeight + oY)+'px';
	div.style.left = (oX+pos.x)*1+'px';
	var rd = Math.round(1000 - 2000*Math.random());
	if(!no_autohide) div.timeout = setTimeout("hint_remove('"+div.id+"')", 5000+rd);
	
	el.hintElement = div;
	return div;
}
function hint_remove(hintId){
	if($(hintId))	hint_create($(hintId).forElement, 'none');
}

// THIRD PARITY
/*
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}
/*
quirksmode
*/
function getElementsByTagNames(list,obj) {
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}
//EXEC
utl_detectBrowser();

