/*
* Internet vibes javascript utils
*/

var storage = {}; 
 
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}

function dbi(tag) {
 return document.getElementById(tag);
}

function flash_errors(_err)
{
	if(_err) {
		var id;
		for( id in _err ) {
			var _obj = dbi(id);
			var _msg = document.createElement('div');
			_msg.setAttribute('id', id + '_msg');
			_msg.className = 'errmsg';
			_msg.innerHTML = _err[id];
			_obj.parentNode.appendChild(document.createElement('br'));
			_obj.parentNode.appendChild(_msg);
			_obj.oldbg = _obj.style.backgroundColor;
			_obj.style.backgroundColor = '#ffffc0';
		}
	}
}

function load_post(_post)
{
	if(_post) {
		var id;
		for( id in _post ) {
			var _obj = dbi(id);
			if( _obj != null && (_obj.tagName.toUpperCase() == 'INPUT' || _obj.tagName.toUpperCase() == 'TEXTAREA' || _obj.tagName.toUpperCase() == 'SELECT')  )
			{		
				_obj.value = _post[id];
			}
		}
	}
}

function setCookie(cookieName,cookieValue,nDays) 
{
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
}

function getCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function nodeText(node)
{
	var r = node.nodeValue != null ? node.nodeValue : '';
	var i;

	if( node.childNodes.length ) {
		for(i=0; i<node.childNodes.length; i++) {
			r = r + nodeText(node.childNodes[i]);
		}
	}
	return r;
}


function loadXML(file, func) {

         // jQuery Support
         if(jQuery.ajax) {
		var req  = { type: "GET", processData: false, url: file	};
		if( typeof(func) != 'function' ){
			eval("req['success'] = " + func + ";");
		}else{
			req['success'] = func;
		}
		jQuery.ajax(req);
		return true;
	 }else
         // YUI Support
         if(YAHOO.util.Connect) {

            var params = {};
            if( typeof(func) != 'function' ){
               eval("params['success'] = " + func + ";")
            }else{
               params['success'] = func;
            }

            params['failure'] = (arguments[2] ? arguments[2] : yui_failureHandler);

            var request = YAHOO.util.Connect.asyncRequest('GET', file, params );
            return true;
         }

         var objXMLFile = jsXML.createDOMDocument();
         objXMLFile.onreadystatechange = function() {
		 		if (objXMLFile.readyState == 4) {
					eval( func + '(objXMLFile)' );
				}
			};
         objXMLFile.load(file);
}


function dummy2( xmlDoc2 )
{
	if( xmlDoc2 != null )
	{
		var resp = xmlDoc2.documentElement;
		if( resp != null && resp.nodeName == 'response')
		{
			var n;	
			for(n=0; n < resp.childNodes.length; n++)
			{
				//alert( xmlDoc2.xml );
				var el = resp.childNodes[n];
				if( el.nodeType == 1 )
				{
					if( el.nodeName == 'update' ){
						var c = nodeText(el);
						var id = el.getAttribute('id');
						var obj = dbi(id);
						if(obj) obj.innerHTML = c;
					}
					else if( el.nodeName == 'uattr' ){
						var c = nodeText(el);
						var id = el.getAttribute('id');
						var attr = el.getAttribute('attr');
						var obj = dbi(id);
						if(obj) obj.setAttribute(attr, c);
					}
					else if( el.nodeName == 'msg' ){
						var c = nodeText(el);
						alert(c);
					}
					else if( el.nodeName == 'script' ){
						var c = nodeText(el);
						eval(c);
					}
				}
			}// for
		}
	}

} 

function collState(id, m_size)
{
	var obj = dbi(id);
	if(obj){
		var full = getCookie('ce_' + id);
		if( null == full ) {
			obj.className = '';
			setCookie('ce_' + id, '1', 365);
		}
		else{
			obj.className = 'hg80';
			setCookie('ce_' + id, '', -1);
		}
		//obj.style.display = '';
	}
}

function doSearch()
{
	var f = document.forms.searchform;
	if(f.st[0].checked){
		f.s.value=f.q.value;
		f.sv.value='';
		return true;
	}
	else if(f.st[1].checked){
		f.s.value='';
		f.sv.value=f.q.value;
		return true;
	}
}


function st(id)
{
	var ob = dbi('tags_' + id);
	var ob2 = dbi('ts_' + id);
	if(ob) {
		var v = ob.style.display;
		ob.style.display = (v == '') ? 'none': '';
		ob2.style.fontWeight = (v == '') ? 'normal': 'bolder';
	}
}
