/*------------------------------------------------------------------------------
* An extension to getStatus of Ajax.Request method in prototype. This method  
* receives request response containing http headers, status code etc. In  case a
* custom header named 'X-CI-LoggedOut' is returned by server with value 1 it means
* our session has expired and we redirect the page to base_url. The alert message
* comes from a language file in PHP which we fetch from a session variable.
------------------------------------------------------------------------------*/
Object.extend
(
	Ajax.Request.prototype,
	{
		getStatus: function()
		{
			try 
			{
				if(this.transport.getResponseHeader('X-CI-LoggedOut') == 1)
				{
					window.location= "/";
					return false;
				}
				return this.transport.status || 0;
			} 
			catch (e) 
			{ 
				return 0 
			} 
		}
	}
);


/*
* Like every one else I also hope that one day MSIE will respect W3C
*/
//Event.observe(document, 'DOMSubtreeModified', zebraStripe);
Event.observe(document, 'load', zebraStripe);
Event.observe(document, 'table:Loaded', zebraStripe);


function zebraStripe()
{
	$$('table.zebraStripe tbody > tr:nth-child(odd)').each(function(s) 
	{
		s.addClassName('trow1');
	});
	$$('table.zebraStripe tbody > tr:nth-child(even)').each(function(s) 
	{
	s.addClassName('trow2');
	});
}

/*
* This is useful in case of checking if user has changed some thing in the form. 
* This function can be seen in action on stations and subscriber page.
*/
function isFormDirty(form)
{
	l = eval('document.'+form+'.elements.length;');
	for (var i = 0; i < l; i++)
	{
		var element = eval('document.'+form+'.elements['+i+'];');
		var type = element.type;
		if (type == "checkbox" || type == "radio")
		{
			if (element.checked != element.defaultChecked)
			{
				return true;
			}
		}
		else if (type == "hidden" || type == "password" || type == "text" ||  type == "textarea")
		{
			if ( element.value.strip() != element.defaultValue)
			{
				return true;
			}
		}
		else if (type == "select-one" || type == "select-multiple")
		{
			for (var j = 0; j < element.options.length; j++)
			{
				if (element.options[j].selected != element.options[j].defaultSelected)
				{
					return true;
				}
			}
		}
	}
	return false;
}
