function $(id) { return document.getElementById(id) }
function $c(name) { return document.createElement(name); }

function addEvent(obj, type, fn){
  if (obj.addEventListener)
    obj.addEventListener(type, fn, false);
  else if (obj.attachEvent){
    obj["e"+type+fn] = fn;
    obj[type+fn] = function(){obj["e"+type+fn](window.event);}
    obj.attachEvent("on"+type, obj[type+fn]);
  }
}

function getScrollY()
{
	return parseInt( window.pageYOffset ? window.pageYOffset :
		 ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) - 20 );
}

function getScrollX()
{
	return parseInt( window.pageXOffset ? window.pageXOffset :
		 ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) - 20 );
}

/* class */
function addClass(el,c) { if(!containsClass(el, c)) el.className += " " + c; }
function removeClass(el, c) { el.className = el.className.replace(new RegExp(c,"g"),""); }
function containsClass(el, c) { return el.className.indexOf(c) != -1 }

/* cookies */
function getCookie(name)
{
	var arg	= name + '=';
	var alen = arg.length;
	var	clen =document.cookie.length;
	var i = 0;
	while (i<clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i,j)==arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ",i) + 1;
		if (i==0) break;
	};
	return null;
}

function setCookie(name,value,path,expires)
{
	str = name + "=" + value;
	if (expires) str += " ;expires="+expires;
        if (path) str += " ;path="+path;
	document.cookie = str;
}

function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr==-1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset,endstr));
};

function delCookie(name)
{
	if (getCookie(name))
    	document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

/* ajax request */
function ajaxRequest(url, method, containerResponse, postFunction)
{
	var req;
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest();
	else if(window.ActiveXObject)
		req = new ActiveXObject("Microsoft.XMLHTTP");
	// if browser doesn't support ajax return true
	if(!req) return false;
	
	method = method.toUpperCase();
	
	// process function
 	req.onreadystatechange=function()
 	{
  		if (req.readyState == 4) 
  			if(req.status == 200)
  			{
  				if(containerResponse) containerResponse.innerHTML = req.responseText;
  				if(postFunction) postFunction(req.responseText);
  			}
	}
	
	// send request
	if(method == "GET")
	{
		req.open(method, url, true );
		req.send(null);
	}
	else if(method == "POST")
	{
		try // catch an exception to prevent errors (opera <= 8 doesn't support post request)
		{
			req.open(method, url.slice(0,url.indexOf("?")), true );
			var parameters = url.slice(url.indexOf("?") + 1);
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	      	req.setRequestHeader("Content-length", parameters.length);
	      	req.setRequestHeader("Connection", "close");
	      	req.send(parameters);
      	}
      	catch (e)
      	{
      		return false;
      	}
	}
	else
	{
		alert("Not normal method: " + method);
		return false;
	}
	
	return true;
}

/* menu */
function dynamicMenu()
{
	var menuItems = $('menu').getElementsByTagName('li');
	for( var i = 0; i < menuItems.length; i++)
	{
		menuItems[i].onmouseover = function() { addClass(this,'hover'); }
		menuItems[i].onmouseout  = function() { removeClass(this,'hover'); }
	}
}

function hoverTR()
{
	var rows = document.getElementsByTagName("tr");
	for( var i = 0; i < rows.length; i++ )
	{
		rows[i].onmouseover = function() { addClass(this,'hover'); }
		rows[i].onmouseout  = function() { removeClass(this,'hover'); }
	}
}

addEvent(window,"load",dynamicMenu);
addEvent(window,"load",hoverTR);

function switchAccountTypeElems()
{
	var type0 = 'account_type_0';
	var type1 = 'account_type_1'

	//if($('form_' + type0).checked) removeClass($(type0),"hidden");
	//else addClass($(type0),"hidden");
	
	if($('form_' + type1).checked) removeClass($(type1),"hidden");
	else addClass($(type1),"hidden");
}

function changeGSMSelected()
{
	var inputs = $("gsm_type").getElementsByTagName("input");
	for( var i = 0; i < inputs.length; i++ )
	{
		if(inputs[i].checked)
			addClass(inputs[i].parentNode,"checked");
		else
			removeClass(inputs[i].parentNode,"checked");
	}
}
