
var overOptionCss = "background: highlight; color: highlighttext";
var sizedBorderCss = "2 inset buttonhighlight";

var marked_row = new Array;

var globalSelect;

var ie4 = (document.all != null);

var q = 0;


function initSelectBox(el) {
	copySelected(el);
	
	var size = el.getAttribute("size");

	el.options = el.children[1].children;
	el.selectedIndex = findSelected(el);
	el.remove = new Function("i", "int_remove(this,i)");
	el.item   = new Function("i", "return this.options[i]");
	el.add    = new Function("e", "i", "int_add(this, e, i)");
	
	el.options[el.selectedIndex].selected = true;

	dropdown = el.children[1];

	if (size != null) {
		if (size > 1) {
			el.size = size;
			dropdown.style.zIndex = 0;
			initSized(el);
		}
		else {
			el.size = 1;
			dropdown.style.zIndex = 99;
			if (dropdown.offsetHeight > 200) {
				dropdown.style.height = "200";
				dropdown.style.overflow = "auto";
			}
		}
	}
	
	highlightSelected(el,true);
}

function int_remove(el,i) {
	if (el.options[i] != null)
		el.options[i].outerHTML = "";
}

function int_add(el, e, i) {
	var html = "<div class='option' noWrap";
	if (e.value != null)
		html += " value='" + e.value + "'";
	if (e.style.cssText != null)
		html += " style='" + e.style.cssText + "'";
	html += ">";
	if (e.text != null)
		html += e.text;
	html += "</div>"

	if ((i == null) || (i >= el.options.length))
		i = el.options.length-1;

	el.options[i].insertAdjacentHTML("AfterEnd", html);
}
	
function initSized(el) {
//alert("initSized -------->");
	var h = 0;
	el.children[0].style.display = "none";

	dropdown = el.children[1];
	dropdown.style.visibility = "visible";

	if (dropdown.children.length > el.size) {
		dropdown.style.overflow = "auto";
		for (var i=0; i<el.size; i++) {
			h += dropdown.children[i].offsetHeight;
		}

		if (dropdown.style.borderWidth != null) {
			dropdown.style.pixelHeight = h + 4; //2 * parseInt(dropdown.style.borderWidth);
		}

		else
			dropdown.style.height = h;

	}

	dropdown.style.border = sizedBorderCss;


	el.style.height = dropdown.style.pixelHeight;
}

function copySelected(el) {
	var selectedIndex = findSelected(el);
	
	selectedCell = el.children[0].rows[0].cells[0];
	selectedDiv  = 	el.children[1].children[selectedIndex];
	
	var tst = selectedDiv.outerHTML;
	
	tst = tst.replace(/style="(.*)"/g, "style='font-family: tahoma; font-size:11px; color:#393220;border:1px solid white;'");
	selectedCell.innerHTML = tst;
	
}

function findSelected(el)
{
	var selected = null;

	ec = el.children[1].children;	//the table is the first child
	var ecl = ec.length;
	
	for (var i=0; i<ecl; i++) {
		if (ec[i].getAttribute("selected") != null) {
			if (selected == null) {	// Пойск выбранного
				selected = i;
			}
			else
				ec[i].removeAttribute("selected");	//Единственная выборка
		}
	}
	if (selected == null)
		selected = 0;	//

	
	return selected;
}

function toggleDropDown(el) {
	if (el.size == 1) {
		dropDown = el.children[1];
		
		if (dropDown.style.visibility == "")
			dropDown.style.visibility = "hidden";
			
		if (dropDown.style.visibility == "hidden")
			showDropDown(dropDown);
		else
			hideDropDown(dropDown);
	}
}

function optionClick() {
	el = getReal(window.event.srcElement, "className", "option");

	if (el.className == "option") {
		dropdown  = el.parentElement;
		selectBox = dropdown.parentElement;
		
		oldSelected = dropdown.children[findSelected(selectBox)]

		if(oldSelected != el) {
			oldSelected.removeAttribute("selected");
			el.setAttribute("selected", 1);
			selectBox.selectedIndex = findSelected(selectBox);
		}

		if (selectBox.onchange != null) {	// This executes the onchange when you chnage the option
			if (selectBox.id != "") {		// For this to work you need to replace this with an ID or name
				eval(selectBox.onchange.replace(/this/g, selectBox.id));
			}
			else {
				globalSelect = selectBox;
				eval(selectBox.onchange.replace(/this/g, "globalSelect"));
			}
		}
		
		if (el.backupCss != null)
			el.style.cssText = el.backupCss;
		copySelected(selectBox);
		toggleDropDown(selectBox);
		highlightSelected(selectBox, true);
	}
}

function optionOver() {
	var toEl = getReal(window.event.toElement, "className", "option");
	var fromEl = getReal(window.event.fromElement, "className", "option");
	if (toEl == fromEl) return;
	var el = toEl;
	
	if (el.className == "option") {
		if (el.backupCss == null)
			el.backupCss = el.style.cssText;
		highlightSelected(el.parentElement.parentElement, false);
		el.style.cssText = el.backupCss + "; " + overOptionCss;
		this.highlighted = true;
	}
}

function optionOut() {
	var toEl = getReal(window.event.toElement, "className", "option");
	var fromEl = getReal(window.event.fromElement, "className", "option");

	if (fromEl == fromEl.parentElement.children[findSelected(fromEl.parentElement.parentElement)]) {
		if (toEl == null)
			return;
		if (toEl.className != "option")
			return;
	}
	
	if (toEl != null) {
		if (toEl.className != "option") {
			if (fromEl.className == "option")
				highlightSelected(fromEl.parentElement.parentElement, true);
		}
	}
	
	if (toEl == fromEl) return;
	var el = fromEl;

	if (el.className == "option") {
		if (el.backupCss != null)
			el.style.cssText = el.backupCss;
	}

}

function highlightSelected(el,add) {
	var selectedIndex = findSelected(el);
	
	selected = el.children[1].children[selectedIndex];
	
	if (add) {
		if (selected.backupCss == null)
			selected.backupCss = selected.style.cssText;
		selected.style.cssText = selected.backupCss + "; " + overOptionCss;
	}
	else if (!add) {
		if (selected.backupCss != null)
			selected.style.cssText = selected.backupCss;
	}
}

function hideShownDropDowns() {
	var el = getReal(window.event.srcElement, "className", "select");
	
	var spans = document.all.tags("SPAN");
	var selects = new Array();
	var index = 0;
	
	for (var i=0; i<spans.length; i++) {
		if ((spans[i].className == "select") && (spans[i] != el)) {
			dropdown = spans[i].children[1];
			if ((spans[i].size == 1) && (dropdown.style.visibility == "visible"))
				selects[index++] = dropdown;
		}
	}
	
	for (var j=0; j<selects.length; j++) {
		hideDropDown(selects[j]);
	}	
}

function hideDropDown(el) {
	if (typeof(fade) == "function")
		fade(el, false);
	else
		el.style.visibility = "hidden";
}

function showDropDown(el) {
	if (typeof(fade) == "function")
		fade(el, true);
	else if (typeof(swipe) == "function")
		swipe(el, 2);
	else
		el.style.visibility = "visible";
}

function initSelectBoxes() {
	var spans = document.all.tags("SPAN");
	var selects = new Array();
	var index = 0;
	
	for (var i=0; i<spans.length; i++) {
		if (spans[i].className == "select")
			selects[index++] = spans[i];
	}
	
	for (var j=0; j<selects.length; j++) {
		initSelectBox(selects[j]);
	}	
}

function getReal(el, type, value) {
	temp = el;
	while ((temp != null) && (temp.tagName != "BODY")) {
		if (eval("temp." + type) == value) {
			el = temp;
			return el;
		}
		temp = temp.parentElement;
	}
	return el;
}

if (ie4) {
	window.onload = initSelectBoxes;
	document.onclick = hideShownDropDowns;
}
	
	
function writeSelectBox(matrix, id, size, onchange, css)
{
	var uag= navigator.userAgent;
	var opera= /opera [56789]|opera\/[56789]/i.test(uag);
	var ie= !opera && /msie [56789]/i.test(uag);
	var moz= !opera && /mozilla\/[56789]/i.test(uag);

	if (ie) {
		var s = cIEStr(matrix, id, size, onchange, css);
		document.write(s);
	}
	else {
		document.write(cXStr(matrix, id, size, onchange, css));
	}
}

function cIEStr(matrix, id, size, onchange, css)
{
 	var str = "";
		str += '<span class="select" size="1"';
		if (id != null)		str += ' id="' + id + '"';
		if (onchange != null)	str += ' onchange="' + onchange + '"';
		if (css != null)	str += ' style="' + css + '"';
		
		str += '>\n';
	
		str += '<table border=0 width='+size+' class="selectTable" cellspacing="0" cellpadding="0" onclick="toggleDropDown(this.parentElement)">\n';
		str += '<tr>\n';
		str += '<td class="selected">&nbsp;</td>\n';
		str += '<td align="center" valign="middle">\n';
		str += '<img src="../gfx/drop_down_btn.gif" width=17 height=17 style="cursor:hand;"></td>\n';
		str += '</tr>\n';
		str += '</table>\n';
		
		str += '<div class="dropDown" onclick="optionClick()" onmouseover="optionOver()" onmouseout="optionOut()">\n';
		
		
		
		for (var i=0; i<matrix.length; i++)
		{
			html     = matrix[i].html;
			value    = matrix[i].value;
			css      = matrix[i].css;			
			selected = matrix[i].selected;
			
			str += '<div class="option"';
			if (value != null)	str += ' value="' + value + '"';
			if (selected != null)	str += ' selected';
			if (css != null)	str += ' style="' + css + '"';			
			str += '>\n';
			
			str += html;
			str += '</div>\n';
		}
	 str += '</div>\n';
	 str += '</span>\n';
	 

	 
	return str;
}

function cXStr(matrix, id, size, onchange, css)
{
	var str = '<form>\n';
	str += '<select size="1"';
	if (id != null)	str += ' id="' + id + '"';
	if (onchange != null)	str += ' onchange="' + onchange + '"';
	str += '>\n';
	
	for (var i=0; i<matrix.length; i++) {
		html     = matrix[i].html;
		value    = matrix[i].value;
		selected = matrix[i].selected;
		css      = matrix[i].css;
		
		str += '\n<option';
		if (value != null)	str += ' value="' + value + '"';
		if (selected != null)	str += ' selected';
		str += '>';		
		str += stripTags(html);
		str += '</option>\n';
	}
	str += '\n</select>\n';
	str += '</form>\n';

	return str;
}

function stripTags(str)
{
	var s = 0;
	var e = -1;
	var r = "";

	s = str.indexOf("<",e);	

	do {
		r += str.substring(e + 1,s);
		e = str.indexOf(">",s);
		s = str.indexOf("<",e);
	}
	while ((s != -1) && (e != -1))

	r += str.substring(e + 1,str.length);

	return r;
}

function Option(html, value, css, selected) {
	this.html = html;
	this.value = value;
	this.css = css;
	this.selected = selected;
}

//====================
function iw(i)
{
  
	document.frm.week.value = i;
	document.frm.submit();
}

var timerID = null;
var timerRunning = false;	

function stopclock ()
{
	if(timerRunning)
		clearTimeout(timerID);
		timerRunning = false;
}

function showtime ()
{
	var now = new Date();
	var hours = now.getHours();
	var minutes = now.getMinutes();
	
	var timeValue = "" + hours
	if (timeValue == "0") timeValue = 12;
	timeValue += ((minutes < 10) ? ":0" : ":") + minutes

	document.all.face.innerText = timeValue;
	timerID = setTimeout("showtime()",1000);
	timerRunning = true;
}

function startclock()
{
	stopclock();
	showtime();
}	
//========== OTHER FUNCTION ======


function sCal(theRow, theRowNum, theAction)
{
	theDefaultColor = "#ffffff";
	thePointerColor = "#E9E9E9";
	theMarkColor = "#CCCCCC";
    var theCells = null;

    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } 
   
    if (currentColor.indexOf("rgb") >= 0) 
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                     currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }

    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
        }
    }
    if (newColor) {
        var c = null;
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    }

    return true;
}	
