var _mouseOnParent = new Array();
var _mouseOnSub = new Array();
var enTable = new Array('A','B','V','G','D','E','YO','ZH','Z','I','Y','K','L','M','N','O','P','R','S','T','U','F','H','TS','TCH','SH','CSH','','YI','','YE','YU','YA','a','b','v','g','d','e','yo','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','h','ts','tch','sh','csh','','yi','','ye','yu','ya');

var ruTable = new Array('À','Á','Â','Ã','Ä','Å','¨','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ü','Û','Ú','Ý','Þ','ß','à','á','â','ã','ä','å','¸','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ü','û','ú','ý','þ','ÿ');

function translit_string(srcString,mode)
{
	var dstString = new String('');
	for (i = 0; i < srcString.length; i++)
	{
		for (j = 0; j < ruTable.length; j++)
		{
			if (srcString.charAt(i) == ruTable[j])
			{
				dstString += enTable[j];
			}
		}
	}
	if (dstString == '')
		dstString = srcString;
	newstr = dstString.replace(/\s/gi,"_");
	
	if (mode == 'lo')
		return newstr.toLowerCase();
	if (mode == 'up')
		return newstr.toUpperCase();
	if (mode == 'nat')
		return newstr;
}


function translitRT(theForm,srcField,dstField,bTranslit)
{
	var src = theForm.elements[srcField];
	var dst = theForm.elements[dstField];
if (!src)
	src = document.getElementById(srcField);
if (!dst)
	dst = document.getElementById(dstField);
	if (bTranslit)
		dst.value=translit_string(src.value,'nat');
}

function translitRTLo(theForm,srcField,dstField,bTranslit)
{
	var src = theForm.elements[srcField];
	var dst = theForm.elements[dstField];
if (!src)
	src = document.getElementById(srcField);
if (!dst)
	dst = document.getElementById(dstField);
	if (bTranslit)
		dst.value=translit_string(src.value,'lo');
}

function translitRTUp(theForm,srcField,dstField,bTranslit)
{
	var src = theForm.elements[srcField];
	var dst = theForm.elements[dstField];
if (!src)
	src = document.getElementById(srcField);
if (!dst)
	dst = document.getElementById(dstField);
	if (bTranslit)
		dst.value=translit_string(src.value,'up');
}

function bCheckFlashPlayer(nPluginVersion)
{
	var plugin;
	var version = 6;
	var flash = false;

	if (nPluginVersion != "")
		version = nPluginVersion;

	if (navigator.plugins) {
	    if (navigator.plugins["Shockwave Flash"]) {
	        plugin = navigator.plugins["Shockwave Flash"].description;
	        flash = parseInt(plugin.charAt(plugin.indexOf('.') - 1)) >= version;
	    }

	    else
	    {
	    	if ((navigator.userAgent.indexOf('MSIE') != -1)&& (navigator.userAgent.indexOf('Win') != -1))
	        {
	            var vb = '<script language="vbscript">\n'
	            +'if ScriptEngineMajorVersion >= 2 then\n'
	            +'on error resume next\n'
	            +'flash = IsObject(CreateObject('
	            +'"ShockwaveFlash.ShockwaveFlash.'
	            +version + '"))\n'
	            +'end if\n'
	            +'<' + '/script>';
	            document.write(vb);
	        }
	    }
	}
	    if (flash == false)
	    {
			var cfres = confirm("FLASH not installed. Go to macromedia flash plugin homepage now?");
	        if (cfres == true)
	        	document.location = 'http://www.macromedia.com/go/getflashplayer';
	    }
	    return flash;
}

function updateform(prefix)
{
	var CurVote = prefix + 'nums';
	var CurList = prefix + 'list';
	var elm = document.getElementById(CurList);
    var eln = document.getElementById(CurVote);

	 var nCount = eln.value;
	if (nCount > 15)
	{
		alert('too much!!!!');

	}else
	{
		  elm.innerHTML = '';
		  for (i = 0; i < nCount; i++)
		  {
		  	elm.innerHTML += '<tr><td>'+'<label For="'+prefix+'[]">N<u>o</u>&nbsp;'+(i+1)+'&nbsp;</label></td><td><Input Type="file" Name="'+prefix+'[]" class="texter"></td></tr>';
		  }
	}
}

function checkList(prefix)
{
	var elem = document.getElementById(prefix + 'nums');
	var nCount = elem.value;
  elem.innerHTML = '$voteas'+idx;

}

function set_parent(id,catname)
{
	document.getElementById('parent').value = id;
	if (id != 0)
	{
		document.getElementById('parent_null').value = catname;
	}
	else
	{
		document.getElementById('parent_null').value = '';
	}
}

function edit_item(id,pid,name)
{
	document.getElementById('mode').value = 'edit';
	document.getElementById('name').value = name;
	document.getElementById('selfer').value = id;
	document.getElementById('parent').value = pid;
	document.getElementById('subfrm').value = 'Edit';
}

function delitem(prefix,itemID,confirmText)
{
	if (confirm(confirmText))
	{
		var el = document.getElementById(prefix + '_' + itemID);
		el.value = '';
	//	el.name = 'null';
		var lnk = document.getElementById(prefix + 'link_' + itemID);
		lnk.style.display = 'none';
		var lnk = document.getElementById(prefix + 'linkp_' + itemID);
		lnk.style.display = 'none';
	}
}

function void_0(idle)
{ 
	return idle;
}
function CleanField(field_id)
{
 var el = document.getElementById(field_id);
 el.value= '';
}

function recalc()
{

	lent = recalc.arguments;
	var tvl = 0;
	
	for (j = 0; j < lent.length; j++)
	{
		document.getElementById('cost['+lent[j]+']').value = parseFloat(document.getElementById('price['+ lent[j]+']').value) *parseFloat( document.getElementById('quant['+lent[j]+']').value);
		tvl +=  parseFloat(document.getElementById('cost['+lent[j]+']').value);
	}
	document.getElementById('totl').value = tvl;
}

function swapImage(newImage,imgID)
{
	document.getElementById(imgID).src=newImage;
	for(i=0;i<_mouseOnParent.length;i++)
	{
		if(_mouseOnParent[i] && _mouseOnSub[i] == false)
		{
			_mouseOnParent[i] = false;
			hideFloatSubmenu(i);
		}
	}
	
}
function emoticon(areaID,text)
{
        var txtarea = document.getElementById(areaID);
        text = ' ' + text + ' ';
        if (txtarea.createTextRange && txtarea.caretPos) {
                var caretPos = txtarea.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
                txtarea.focus();
        } else {
                txtarea.value  += text;
                txtarea.focus();
        }
}

function HideElement(hideId,hidemode)
{
	var t = document.getElementById(hideId);
	if (hidemode == true)
	{
		t.style.display = 'none';
	}
	else
	{
		t.style.display = '';
	}
	
	return false;
}
function SwapHideMode(hideId)
{
	var t = document.getElementById(hideId);
	var timg = document.getElementById(hideId + '_img');
	
	if (t.style.display == '')
	{
		t.style.display = 'none';
		timg.src = '/'+ LIB_ROOT +'/images/nolines_plus.gif';
	}
	else
	{
		t.style.display = '';
		timg.src = '/'+ LIB_ROOT +'/images/nolines_minus.gif';
	}
	return false;
}

function URLEncode(urlText )
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"ÀÁÂÃÄÅ¨ÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÝÚÝÞß"+
					"àáâãäå¸æçèéêëìíîïðñòóôõö÷øùüýúýþÿ"+
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = urlText;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};

function URLDecode(urlText )
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = urlText;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
};

function GetElementLeft(eElement)
{
    var nLeftPos = eElement.offsetLeft;          // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element  
    while (eParElement != null)
    {                                            // move up through element hierarchy
        nLeftPos += eParElement.offsetLeft;      // appending left offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
    return nLeftPos;                             // return the number calculated
}

function GetElementTop(eElement)
{
    var nTopPos = eElement.offsetTop;            // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element  
    while (eParElement != null)
    {                                            // move up through element hierarchy
        nTopPos += eParElement.offsetTop;        // appending top offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
    return nTopPos;                              // return the number calculated
}

function showFloatSubmenu(parentID)
{
	var parentBlock = document.getElementById(parentID);
	var block = document.getElementById('submenu_'+parentID);
	if(parentBlock && block)
	{
	//	alert(GetElementTop(parentBlock));
		_mouseOnParent[parentID] = true;
		block.style.left = GetElementLeft(parentBlock)+parentBlock.width;//*(2/3);
		block.style.top = GetElementTop(parentBlock);//+parentBlock.height/3;
		block.style.offsetLeft = GetElementLeft(parentBlock)+parentBlock.width;//*(2/3);
		block.style.offsetTop = GetElementTop(parentBlock);//+parentBlock.height/2;
		block.style.visibility = 'visible';
	}
}
function onSubMenu(parentID)
{
	_mouseOnParent[parentID] = false;
	_mouseOnSub[parentID] = true;
	showFloatSubmenu(parentID);
}
function leaveSubMenu(parentID)
{
	_mouseOnParent[parentID] = false;
	_mouseOnSub[parentID] = false;
	hideFloatSubmenu(parentID)
}
function hideFloatSubmenu(parentID)
{
	for(i=0;i<_mouseOnParent.length;i++)
	{
		if(_mouseOnParent[i])
		{
			var b = document.getElementById('submenu_'+i);
			b.style.visibility = 'hidden';
			_mouseOnSub[i] = false;
		}
	}
	
	var block = document.getElementById('submenu_'+parentID);
	if(block && _mouseOnParent[parentID] == false)
	{
		block.style.visibility = 'hidden';
		_mouseOnSub[parentID] = false;
	}
}
function explode( delimiter, string ) {   
    // http://kevin.vanzonneveld.net   
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)   
    // +   improved by: kenneth   
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)   
    // *     example 1: explode(' ', 'Kevin van Zonneveld');   
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}   
    
    var emptyArray = { 0: '' };   
    
    if ( arguments.length != 2   
        || typeof arguments[0] == 'undefined'  
        || typeof arguments[1] == 'undefined' )   
    {   
        return null;   
    }   
    
    if ( delimiter === ''  
        || delimiter === false  
        || delimiter === null )   
    {   
        return false;   
    }   
    
    if ( typeof delimiter == 'function'  
        || typeof delimiter == 'object'  
        || typeof string == 'function'  
        || typeof string == 'object' )   
    {   
        return emptyArray;   
    }   
    
    if ( delimiter === true ) {   
        delimiter = '1';   
    }   
    
    return string.toString().split ( delimiter.toString() );   
}  
function explode( delimiter, string ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: kenneth
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
 
    var emptyArray = { 0: '' };
 
    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
 
    return string.toString().split ( delimiter.toString() );
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "undef";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
