//(c)Alexander Barnard 2007/9
var CSS_STYLES=["_cssHREF","borderLeftColor","borderTopColor","borderRightColor","borderBottomColor","backgroundImage","backgroundColor"]
var ulCSS=[],ih_me,roCSS=[]
var __RI_bubble=0

function _loadCSS(){
	var a=_loadCSS.arguments
	var c=[]
	for(var i=0;i<a.length;i++){
		c[i]=[]
		var o=_getCSSrule(a[i],c,i)
		if(o){
			var h=c[i][CSS_STYLES[0]]
			if(h)h=h.substr(0,h.lastIndexOf("/")+1)
			for(var j=1;j<CSS_STYLES.length;j++){
				var s=""
				if(o){
					s=o.style[CSS_STYLES[j]]
					var u=s.match(/url\(([^\)]*)\)/)
					if(u)s="url("+(/^\w+\:/.test(h)?'':h)+u[1].replace(/['"]/g,'')+")"
				}	
				c[i][CSS_STYLES[j]]=s
			}
		}
	}
	return c
}
function _getCSSrule(cssName,o,idx){
	var s=document.styleSheets
	for (var i=0;i<s.length;i++){
		if(o)o[idx][CSS_STYLES[0]]=s[i].href
		var r=(s[i].cssRules)?s[i].cssRules:(s[i].rules)?s[i].rules:0
		for(var j=0;j<r.length;j++)
			if(r[j].selectorText==cssName)return r[j]
	} 
	return null
}
function _setStyle(me,aCSS,q){
	for(var i=1;i<CSS_STYLES.length;i++){
		var s=CSS_STYLES[i]
		if(q)alert(i+" "+s+" "+aCSS[s])
		if(aCSS[s]!=undefined)me[s]=aCSS[s]
	}	
}
//---------------
function ih_handle(){
	var a=ih_handle.arguments
	if(a[0]){
		var o=a[0]
		for(var i=1;i<a.length;i++){
			o._ih=true
			o._class=o.className
			o._state=-1
			o._s=[]
			_setStyle(o._s,o.style)
			if(o.options)o._index=o.selectedIndex
			_addEvent(o,a[i],"ih"+a[i]+"(this,e)")
		}		
	}	
}
//function ih_click(me){//FOR IE7
//	if(!me._droppeddown)
//		_setStyle(me.style,roCSS[1])
//	return true	
//}	
function ih_highlight(it,s){
	var o=it
	while(o.parentNode){
		if(o._isRO!=undefined){
			var oC=o.parentNode._roCurrent
			if(oC)if(o!=oC)_setStyle(oC.style,oC._s)
			o.parentNode._roCurrent=o
			_setStyle(o.style,(s)?ulCSS[0]:o._s)
		}
		o=o.parentNode
	}
}
function ih_mousedown(me){//FOR IE7
	if(!me._droppeddown)_setStyle(me.style,roCSS[1])
	me._droppeddown=(me._state==-1)?1:0
	return true	
}
function ih_keydown(me,e){//FOR IE7
	if(_keyCode(e)==13)me._droppeddown=0
	return true
}
function ih_focus(me){
	if(!__loaded||_DnD.o!=0)return false
	var txt=""
	if(me._ih){
		if(!/noborder/i.test(me.className))
			if(me.tagName!="LABEL")
				if(!me._droppeddown){
					if(!/disabled|readonly/i.test(me.className)){
						_setStyle(me.style,roCSS[1])
						ih_highlight(me,1)
						txt="Edit "
					}
					me._state=1
				}
		if(ih_help(me,'helpfoc'))
			me.style.cursor="auto"
	}	
	_msg(txt+"Field : "+me.title,1)
	return true
}
function ih_mouseover(me){
	if(!__loaded||_DnD.o!=0)return false
	if(me._ih){
		if(!/noborder/i.test(me.className))
			if(me.tagName!="LABEL")
				if(me._state!=1){
					if(!/disabled|readonly/i.test(me.className))
						_setStyle(me.style,roCSS[0])
					me._state=0
				}	
			_position("helpme",POS_SHOW+POS_COVER,me)
		if(ih_help(me,'helpovr')){
			me.style.cursor="help"
		}	
	}
	return true
}
function ih_mouseout(me){
	if(!__loaded||_DnD.o!=0)return
	if(me.options)if(me._droppeddown)return false//FOR IE7
	if(me._ih){
		me.style.cursor="auto";
		if(me.tagName=="LABEL")
			ih_help(me,'')
		else if(me._state!=1)
			ih_blur(me)
		else
			ih_help(me,'helpfoc')
	}		
	return true
}
function ih_blur(me){
	if(!__loaded||_DnD.o!=0)return false
	if(!/noborder/i.test(me.className)){
		if(_hasChanged(me)){
			_setStyle(me.style,roCSS[2])
		}else	
			_setStyle(me.style,me._s)
		me._state=-1
		if(!d._FORMcheck)ih_highlight(me,0)
	}
	ih_help(me,'')
	_msg("",1)	
	return true
}
function ih_reset(me){
	if(!__loaded)return
	var el;
	if(me._ih)if(me.elements)
	for(var i=0;i<me.elements.length;i++){
		el=me.elements[i];
		if(el._s!=undefined)_setStyle(el.style,el._s)
	}
}
function ih_help(it,cls){
	if(!__loaded||_DnD.o!=0)return
	var o
	for(var i=0;i<3;i++){
		if(i==0)
			o=_getObject("help"+it.id.substr(5))
		else if(it.name){	
			if(i==1)		
				o=_getObject('help'+it.name.substr(2).replace(/_\d+$/,''))
			else if(i==2)		
				o=_getObject('help'+it.name)
		}	
//		_ih_bubble(o,(cls==''||!__RI_bubble)?POS_HIDE:(cls=='helpfoc')?POS_SHOW:0,it)
		if(o){
			while(o.tagName=="SPAN"){o=o.parentNode}
			if(!/frmhelp/.test(o.className)){
				o.className=cls
				if(cls){
					if(o.offsetTop+o.offsetHeight>o.offsetParent.offsetHeight||o.offsetTop<o.offsetParent.scrollTop){
						o.offsetParent.scrollTop=o.offsetTop-o.offsetParent.offsetHeight+o.offsetHeight+10}
				}
				return true
			}	
		}
	}	
	return false
}
function ih_keyPress(e){
	var o,c=_keyCode(e)
	if(!e) var e = window.event;
	if(e.target)o = e.target;
	else if(e.srcElement)o = e.srcElement;
	if(o.nodeType == 3)o= o.parentNode;
	if(c==191&&e.ctrlKey){
		ih_toggleHelp(o.form)
		ih_help(o,'helpfoc')//_RI_bubble?POS_SHOW:POS_HIDE,it)
	}	
}
function ih_toggleHelp(it){
	__RI_bubble=!__RI_bubble
	if(it.X0help)it.form.X0help.checked=__RI_bubble
}
function _ih_bubble(o,state,it){
	if(!o)return
	if(!state)state=0
	if(o._bubble==undefined){
		o._bubble=true
		o.innerHTML=o.innerHTML+'<div class="btm"></div>'
	}	
	_position(o,POS_NO_MOUSE_OFFSET|state,it)
}
//===============================
function _addFormHighlightsTo(){
	roCSS=_loadCSS(".inputhover",".inputfocus",".inputchanged")
	var a=_addFormHighlightsTo.arguments
	for(var i=1;i<a.length;i++){
		var o=a[0].getElementsByTagName(a[i])
		for(var j=0;j<o.length;j++)
			if(o[j].type!="hidden")//||(a[0]=="LABEL"&&!o[j]["for"])))
				if(!/button/i.test(o[j].className)){
//					if(!/x/i.test(((o[j].name)?o[j].name.substr(0,1):"x"))){
						ih_handle(o[j],'_focus','_mouseover','_mouseout','_blur')
						if(/select/i.test(a[i]))//SELECT - FOR IE7
							ih_handle(o[j],'_keydown','_mousedown')
					}	
	}
	var o=a[0].getElementsByTagName("FORM")
	for(i=0;i<o.length;i++)
		ih_handle(o[i],'_reset')
}
//---
function _addRolloverEventTo(){
	ulCSS=_loadCSS(".ulhover")
	var a=_addRolloverEventTo.arguments
	for(var i=1;i<a.length;i+=2){
		var aT=a[0].getElementsByTagName(a[i])
		for(var j=0;j<aT.length;j++){
			if(/rollover/.test(aT[j].className)){
				var o=aT[j].getElementsByTagName(a[i+1])
				aT[j]._roCurrent=0
				for(var k=0;k<o.length;k++)
					if(/frmbg\d+/.test(o[k].className)){
						o[k]._s=[]
						o[k]._isRO=1
						_setStyle(o[k]._s,o[k].style)
						o[k].onmouseover=function(){ih_highlight(this,1);this.parentNode._roCurrent=this}//_setStyle(this.style,ulCSS[0]);this.parentNode._roCurrent=this}
						o[k].onmouseout=function(){ih_highlight(this,0)}//_setStyle(this.style,this._s)}
					}		
			}
		}
	}
}
_onLoad.add("_addFormHighlightsTo(document,'INPUT','SELECT','TEXTAREA','LABEL')")
_onLoad.add("_addRolloverEventTo(document,'div','ul',  'table','tr')")

if(document.attachEvent)
	document.attachEvent('onkeydown',ih_keyPress)
else if(document.addEventListener)
	document.addEventListener('keydown',ih_keyPress,false)

