var ie6//@cc_on=1;

var Selection = null;

function rsSubmitReplaceLoad() {
	var div = document.getElementById('srSubmit');
	var submit = document.getElementById('regFormSubmit');
	if(div != null && submit != null)
	{
		div.onfocus = function() { Selection = submit; submit.className = submit.className.replace(/[\s]?srCheckerBlur/, ' srCheckerFocused'); }
		div.onblur =  function() { Selection = null; submit.className = submit.className.replace(/[\s]?srCheckerFocused/, ' srCheckerBlur');	}
		div.onkeypress = function(e) {	if(e.keyCode==32||e.keyCode==13){document.getElementById('regForm').submit();}	}
	}
}

function rsSelectReplace(sel) {
	var ul = document.createElement('ul');

	ul.className = ' srList srCollapsed srBlur ';
	
	ul.srSelect = sel;
	sel.srReplacement = ul;
	
	sel.className += ' srReplacedSelect ';
	
	sel.onfocus = function() { Selection = sel; this.srReplacement.className = this.srReplacement.className.replace(/[\s]?srBlur/, ' srFocus'); }
	sel.onblur = function()  { Selection = null; this.srReplacement.className = this.srReplacement.className.replace(/[\s]?srFocus/, ' srBlur'); }
	
	sel.onchange = function()
	{
		var ul = this.srReplacement;
		ul.srSelectLi(ul.childNodes[this.selectedIndex]);
	}
	
	sel.onkeypress = function(e)
	{
		var i = this.selectedIndex;
		var ul = this.srReplacement;

		if(e)
			switch (e.keyCode) {
				case 9:
					this.srReplacement.srCollapse();
				break;

				case 37:
				case 38:
					if (i - 1 >= 0)
						ul.srSelectLi(ul.childNodes[i - 1]);
				break;
				
				case 13:
					if(document.srExpandedList)
						document.srExpandedList.srCollapse();
				break;
				
				case 40:
					if(!this.srExpanded)	ul.srExpand();
				case 39:
					if (i + 1 < ul.childNodes.length)
						ul.srSelectLi(ul.childNodes[i + 1]);
				break;

				case 33:
				case 36:
					ul.srSelectLi(ul.firstChild);
				break;

				case 34:
				case 35:
					ul.srSelectLi(ul.lastChild);
				break;
				default:
				break;
			}
	}
	
	sel.onkeydown = sel.onkeypress;
	
	ul.onmouseover = function() { this.className += ' srHoverUl'; }

	ul.onmouseout = function() { this.className = this.className.replace(/[\s]?srHoverUl/, ''); }
	
	ul.srSelectLi = function(li)
	{
		var ul = li.parentNode;

		if(ul.srSelectesIndex != null)
			ul.childNodes[ul.srSelectesIndex].className = '';

		ul.srSelectesIndex = li.srIndex;

		ul.childNodes[li.srIndex].className = 'srSelectedLi';
		return li.srIndex;
	}

	ul.srExpand = function()
	{
		if(!this.srExpanded)
		{	
			if(document.srExpandedList)
				document.srExpandedList.srCollapse();		
		
			document.srExpandedList = this;		

			this.srSelect.focus();
			
			this.className  = this.className.replace(/[\s]?srCollapsed/, ' srExpanded');
			this.srExpanded = true;		

			if(ie6) 
			{
				var node = this.firstChild;
				var offset = 0;
				var height = node.clientHeight;
				while(node)
				{
					node.style.position = 'absolute';
					node.style.top = offset;
					node.style.left = -1;
					offset += height; 
					node = node.nextSibling;
				}
			}
		}
	}

	ul.srCollapse = function(li)
	{	
		if(this.srExpanded)
		{
			document.srExpandedList = null;

			if(li)
			{
				this.srSelect.selectedIndex = this.srSelectLi(li);
				this.srSelect.focus();
			}

			this.className = this.className.replace(/[\s]?srExpanded/, ' srCollapsed');
			this.srExpanded = false;

			if(ie6)
			{
				var node = this.firstChild;
				while(node)
				{
					node.style.position = '';
					node = node.nextSibling;
				}
			}
		}
	}


	var options = sel.options;
	var len = options.length;

	for(var i = 0; i < len; i++)
	{
	    var li = document.createElement('li');
		li.appendChild(document.createTextNode(options[i].text));

		li.srIndex = i;

		li.onmouseover = function() { this.className += ' srHoverLi'; }

		li.onmouseout = function() { this.className = this.className.replace(/[\s]?srHoverLi/, ''); }
		
		ul.appendChild(li);
	}
	
	if(sel.selectedIndex == null)
		sel.selectedIndex = 0;

	ul.srSelectLi(ul.childNodes[sel.selectedIndex]);

	sel.parentNode.insertBefore(ul, sel);
}

function srOnDocumentClick(e)
{
	var target = (window.event) ? window.event.srcElement : e.target;
	
	//if( ie6 && Selection != null )	alert(Selection.className);
	
	if(document.srExpandedList)
	{
		if((target.srIndex || target.srIndex === 0) && document.srExpandedList == target.parentNode	)
			document.srExpandedList.srCollapse(target);
		else
			document.srExpandedList.srCollapse();
	}
	else
	{
		if(target.srIndex || target.srIndex === 0)
			target.parentNode.srExpand();
	}
}

function rsCheckBoxReplace(sel) {
	var ul = document.createElement('ul');
	ul.className = ' srChecker srCheckerBlur';
	ul.className += (sel.checked) ? ' srCheckerOn' : ' srCheckerOff';
	
	ul.srSelect = sel;
	sel.srReplacement = ul;
	
	sel.className += ' srReplacedCheckbox';

	sel.onfocus = function() { Selection = sel; this.srReplacement.className = this.srReplacement.className.replace(/[\s]?srCheckerBlur/, ' srCheckerFocused'); }
	sel.onblur = function()  { Selection = null; sel.srReplacement.className = this.srReplacement.className.replace(/[\s]?srCheckerFocused/, ' srCheckerBlur'); }
	
	var label = document.getElementById(sel.name+'_label');	

	if(ie6)	
		label.style.position = 'relative';

	ul.switchVal = function()
	{
		if(ie6) 
		{
			var node = ul;
			node.style.backgroundImage = '';
		}	
	}
	
	sel.onkeydown = function(e)
	{
		if(ie6)	e = event;
		
		var ul = this.srReplacement;

		if(e != null && e.keyCode == 32)
		{
			sel.checked = (sel.checked) ?	true : false;
			
			if(!sel.checked)
				ul.className  = ul.className.replace(/[\s]?srCheckerOff/, ' srCheckerOn');
			else
				ul.className  = ul.className.replace(/[\s]?srCheckerOn/, ' srCheckerOff');				
			
			ul.switchVal();
		}
	}
	
	ul.onclick = function()
	{
		sel.focus();
		sel.checked = (sel.checked) ?	false : true;
		
		if(sel.checked)
			ul.className  = ul.className.replace(/[\s]?srCheckerOff/, ' srCheckerOn');
		else
			ul.className  = ul.className.replace(/[\s]?srCheckerOn/, ' srCheckerOff');		
			
		ul.switchVal();
	}

	label.onclick = function()
	{
		sel.checked = (sel.checked) ?	true : false;
		
		if(!sel.checked)
			ul.className  = ul.className.replace(/[\s]?srCheckerOff/, ' srCheckerOn');
		else
			ul.className  = ul.className.replace(/[\s]?srCheckerOn/, ' srCheckerOff');				
		
		ul.switchVal();
	}
	
	sel.parentNode.insertBefore(ul, sel);	
}

function srReplaceSelects()
{
	var s = document.getElementsByTagName('select');
	var len = s.length
	for (var i = 0; i < len; i++)
		rsSelectReplace(s[i]);

	//srAddEvent(document, 'click', srOnDocumentClick);
}

function srReplaceCheckboxs()
{
	var s = document.getElementsByTagName('input');
	var len = s.length
	for (var i = 0; i < len; i++)
		if(s[i].type == 'checkbox')
			rsCheckBoxReplace(s[i]);

}

//srAddEvent(window, 'load', srReplaceSelects);
srAddEvent(window, 'load', srReplaceCheckboxs);
srAddEvent(window, 'load', rsSubmitReplaceLoad);

srAddEvent(document, 'click', srOnDocumentClick);
