
browserDetection();

function browserDetection() {
//-------------------
// browser detection
//-------------------

// (to be exported into separate module)

	var _browser;
	if (window.opera)
	_browser = "opera";
	else if (typeof navigator.vendor=="string" && navigator.vendor=="KDE")
	_browser = "khtml";
	else if (typeof navigator.product=="string" && navigator.product=="Gecko")
	_browser = "gecko";
	else if (/msie/i.test(navigator.userAgent))
	_browser = "mshtml";

	_isMshtml = _browser == "mshtml";
	_isGecko  = _browser == "gecko";
	_isOpera  = _browser == "opera";
	_isKhtml  = _browser == "khtml";
}


function inWidth(win) {
	var A;
	if(win.innerWidth!=undefined)A = win.innerWidth
	else{ var D= win.document.documentElement; if(D) A= D.clientWidth; }
	return sizeWH(win).width;
}

function inHeight(win) {
	var A;
	if(win.innerHeight!=undefined)A = win.innerHeight
	else{ var D= win.document.documentElement; if(D) A= D.clientHeight; }
	return sizeWH(win).height;
}
function sizeWH(win) {
  var myWidth = 0, myHeight = 0;
  if( typeof( win.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = win.innerWidth;
    myHeight = win.innerHeight;
  } else if( win.document.documentElement && ( win.document.documentElement.clientWidth || win.document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = win.document.documentElement.clientWidth;
    myHeight = win.document.documentElement.clientHeight;
  } else if( win.document.body && ( win.document.body.clientWidth || win.document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = win.document.body.clientWidth;
    myHeight = win.document.body.clientHeight;
  }
  return { width:myWidth, height:myHeight }
}

function checkElement1(elementP,codeP) {
	if(elementP) { 
		eval(codeP) 
		if((typeof timeOutId1)!='undefined') window.clearTimeout(timeOutId1);
	} else {
		if((typeof count1)!='undefined') { count1+=99 } else { count1 = 0 };
		document.title=count1;
		element1 = elementP;
		code1 = codeP;
		timeOutId1 = window.setTimeout("checkElement1(element1,code1)", 99);
	}
}
function checkElement2(elementP,codeP) {
	if(elementP) { 
		eval(codeP) 
		if((typeof timeOutId2)!='undefined') window.clearTimeout(timeOutId2);
	} else {
		if((typeof count2)!='undefined') { count2+=300 } else { count2 = 0 };
		document.title=count2;
		element2 = elementP;
		code2 = codeP;
		timeOutId2 = window.setTimeout("checkElement2(element2,code2)", 300);
	}
}
function getStyle(win, el, style) {
   if(!win.document.getElementById) return;
     var value = el.style[toCamelCase(style)];
    if(!value)
        if(win.document.defaultView)
            value = win.document.defaultView.
                 getComputedStyle(el, "").getPropertyValue(style);
        else if(el.currentStyle)
            value = el.currentStyle[toCamelCase(style)];
     return value;
}

function origgetStyle( el, style) {
   if(!document.getElementById) return;
     var value = el.style[toCamelCase(style)];
    if(!value)
        if(document.defaultView)
            value = document.defaultView.
                 getComputedStyle(el, "").getPropertyValue(style);
        else if(el.currentStyle)
            value = el.currentStyle[toCamelCase(style)];
     return value;
}

/** toCamelCase(input)
 * Converts string input to a camel cased version of itself.
 * For example:
 * toCamelCase("z-index"); // returns zIndex
 * toCamelCase("border-bottom-style"); // returns borderBottomStyle.
 */
function toCamelCase(s) {
	for(var exp = toCamelCase.exp; 
		exp.test(s); s = s.replace(exp, RegExp.$1.toUpperCase()) );
	return s;
}
toCamelCase.exp = /-([a-z])/;

function getScrollXY(win) {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( win.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = win.pageYOffset;
    scrOfX = win.pageXOffset;
  } else if( win.document.body && ( win.document.body.scrollLeft || win.document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = win.document.body.scrollTop;
    scrOfX = win.document.body.scrollLeft;
  } else if( win.document.documentElement && ( win.document.documentElement.scrollLeft || win.document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = win.document.documentElement.scrollTop;
    scrOfX = win.document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}							 

