/**
 * Ajax Responders
 */
if( AbScript == null)
{
	var AbScript =
	{
		Version: '0.0.1',
		prototypeVersion: parseFloat(Prototype.Version.split(".")[0] + "." + Prototype.Version.split(".")[1])
	}
}

AbScript.CustomAjaxResponders = Class.create();
AbScript.CustomAjaxResponders.prototype =
{
	initialize: function (Options)
	{
		this.Options = {
			BoxClass: 'AjaxResponderClass',
			TextOnCreate: 'Requesting data from server. Please wait...',
			TextOnInteractive: 'Incoming data from server...',
			TextOnSuccess: 'Data received. Interpreting...',
			TextOnFailure: 'Request failed. Please relogin and try again.',
			TextOnComplete: 'Request completed succesfully.'
			};
		Object.extend(this.Options, Options || {});

		this.Instance = 'GlobalAjaxResponder' + Math.floor(Math.random() * Math.pow(10, 6));
		this.NoticeBox = null;
		this.TextBox = null;
		this.RunningEffect = null;

		this.EffectOptions = {duration:0.4, ftp: 20};

		this.BuildTextBox();
	},
	BuildTextBox: function()
	{
		var BodyElement = document.getElementsByTagName('BODY')[0];

		this.NoticeBox = document.createElement('DIV');
		this.NoticeBox.setAttribute('id', this.Instance);
		if(Prototype.Browser.IE)
		{
			this.NoticeBox.className = this.Options.BoxClass;
		}
		else
		{
			this.NoticeBox.addClassName(this.Options.BoxClass);
		}

		this.NoticeBox.style.display = 'none';

		if(Prototype.Browser.IE)
		{
			/**
			 * @exception Must implement on IE
			 */
			this.NoticeBox.style.marginLeft = 0;
		}

		this.TextBox = document.createElement('DIV');
		this.NoticeBox.appendChild(this.TextBox);

		BodyElement.appendChild(this.NoticeBox);
	},
	onLoading: function()
	{
		if(Prototype.Browser.IE)
		{
			this.onCreate();
		}
	},
  	onCreate: function()
  	{
    	this.TextBox.innerHTML = this.Options.TextOnCreate;

		if(Ajax.activeRequestCount > 1) return;
		if(this.RunningEffect != null) this.RunningEffect.cancel();

		this.RunningEffect = new Effect.SlideDown(this.NoticeBox, this.EffectOptions);
  	},
 	onInteractive: function()
 	{
 		this.TextBox.innerHTML = this.Options.TextOnInteractive;
 	},
	onSuccess: function()
	{
		this.TextBox.innerHTML = this.Options.TextOnSuccess;
	},
	onFailure: function()
	{
		this.TextBox.innerHTML = this.Options.TextOnFailure;
	},
	onComplete: function()
	{
		this.TextBox.innerHTML = this.Options.TextOnComplete;
		if(Ajax.activeRequestCount >= 1) return;
		if(this.RunningEffect != null) this.RunningEffect.cancel();

		this.RunningEffect = new Effect.SlideUp(this.NoticeBox, this.EffectOptions);
	}
}
var GloabalAjaxResponders = null;
Event.observe(window, 'load', function() {
	GloabalAjaxResponders = new AbScript.CustomAjaxResponders({
		BoxClass: 'AjaxResponderClass',
		TextOnCreate: TxtOnCreate,
		TextOnInteractive: TxtOnInteractive,
		TextOnSuccess: TxtOnSuccess,
		TextOnFailure: TxtOnFailure,
		TextOnComplete: TxtOnComplete
		});
	Ajax.Responders.register(GloabalAjaxResponders);
});


/**
 * Check if the user is logged in
 */
function CheckLogin(LoginText)
{
	return;
	if (LoginText == '__LOGIN__')
	{
		window.location = 'index.php';
	}
}

/**
 * Language changer
 */
var MyAjax = null;
function ChangeLanguage(Language)
{
	MyAjax = new Ajax.Request
	(
			'Ajax/LanguageChange.php',
			{
				method: 'post',
				parameters: 'id=' + Language,
				onSuccess: ChangeLanguageSuccess,
				onFailure: ChangeLanguageFailure
			}
	);
}
function ChangeLanguageSuccess(r)
{
	var Response = r.responseText.evalJSON();
	if(Response.Success == true)
	{
		window.location.reload();
		return;
	}

	ChangeLanguageFailure(r);
}
function ChangeLanguageFailure(r)
{
	var Response = r.responseText.evalJSON();

	if(Response.ErrCode != 0)
	{
		alert(Response.ErrCode);
		return;
	}

	if(MyAjax.transport.status != 200)
	{
		alert('L10n:' + MyAjax.transport.status);
	}
}

/**
 * Display a message on the interface
 */
function DisplayMessage(SpanId, Message, Timeout)
{
	$(SpanId).innerHTML = Message;
	setTimeout('$(\'' + SpanId + '\').innerHTML="&nbsp;";', Timeout * 1000);
}
function ShowProgressMessage(SpanId, Message, Class)
{
	if (typeof($('loading')) == 'object')
	{
		$('loading').style.display = 'block';
	}

	$(SpanId).className = Class;
	$(SpanId).innerHTML = Message;
}
function HideProgressMessage(SpanId)
{
	if (typeof($('loading')) == 'object')
	{
		$('loading').style.display = 'none';
	}
	$(SpanId).className = '';
	$(SpanId).innerHTML = '&nbsp;';
}

function PopulateComboBox()
{

}

/**
 * Extract a get param from an URL
 */
function GetAllGetParams(Url, RemoveParams)
{
	var i, GetParams, Params, Type, NewUrl;
	var MyRegExp = new RegExp('&', 'gi');

	Type = typeof(RemoveParams);

	if (!Url || RemoveParams == null || Type.toLowerCase() != 'object') return false;

	if (RemoveParams.length < 1) return false;

	GetParams = Url.split('?');
	if (GetParams == null || GetParams.length < 2) return false;

	Params = '&' + GetParams[1];
	for (i=0; i<RemoveParams.length; i++)
	{
		MyRegExp.compile('&' + RemoveParams[i] + '=[^&]+', 'gi');
		Params = Params.replace(MyRegExp, '');
	}

	Url = GetParams[0] + '?' + Params.substr(1);
	return Url;
}

/**
 * Hide all select elements for IE<7
 */
function HideAllSelects()
{
	AllSelects = document.getElementsByTagName("SELECT");

	for (i = 0; i< AllSelects.length; i++)
	{
		AllSelects[i].style.visibility = 'hidden';
	}
}
function UnHideAllSelects()
{
	AllSelects = document.getElementsByTagName("SELECT");

	for (i = 0; i< AllSelects.length; i++)
	{
		AllSelects[i].style.visibility = 'visible';
	}
}

function EmptySelect(ElementToFlush)
{
	if(ElementToFlush.length > 0)
	{
		do
		{
			ElementToFlush.removeChild(ElementToFlush.firstChild);
		} while(ElementToFlush.length > 0);
	}

	if(ElementToFlush.length > 0)
	{
		return false;
	}

	return true;
}

function CheckOrClearAll(FromElement, CheckStatus)
{
	var Checks = $(FromElement).getElementsByTagName('input');
	var i;

	for (i = 0; i < Checks.length; i++)
	{
		Checks[i].checked = CheckStatus;
	}
}

/**
 * USER specific functions
 */
function SaveSmsNumber()
{
	var MyAjax = new Ajax.Request
			(
			'Ajax/OrderCommands.php',
						{
							method: 'post',
							parameters: 'action=addsms'+
											'&smsnumber=' + $('SmsNumber').value +
											'&rdx=' + Math.random(),
							onSuccess: SaveSmsNumberSuccess,
							onFailure: SaveSmsNumberFailure
						}
			);
}

function SaveSmsNumberSuccess(response)
{
	eval('var Message = ' + response.responseText);

	if(Message[0] == false)
	{
		SaveSmsNumberFailure();
	}
	$('SmsWrong').innerHTML = Message[1].fontcolor('green');
	window.location.reload();


}

function SaveSmsNumberFailure()
{
	$('SmsWrong').innerHTML = Message[1].fontcolor('green');

}


function MakeSmsEnable()
{
	if($('MakeSmsEnable').checked == true)
	{
		NewValue = 1;
	}
	else
	{
		NewValue = 0;
	}

	var MyAjax = new Ajax.Request
			(
			'Ajax/OrderCommands.php',
						{
							method: 'post',
							parameters: 'action=enablesms'+
										'&newvalue=' + NewValue +
											'&rdx=' + Math.random(),
							onSuccess: MakeSmsEnableSuccess
							//onFailure: MakeSmsEnableFailure
						}
			);

}

function MakeSmsEnableSuccess(respone)
{
	eval('var Message = ' + response.responseText);
	if(Message[0] == 1)
	{
		return true;
	}
}

/**
	Highlight form's elements on click event
*/

var focuscolor="#FBD0A5"
var ns6 = document.getElementById&&!document.all
var previous=''
var eventobj

//Regular expression to highlight only form elements
var intended=/INPUT|TEXTAREA/

//Function to check whether element clicked is form element
function checkel(which)
{
	if ( which.style&&intended.test(which.tagName) )
	{
		if (ns6&&eventobj.nodeType == 3)
		{
			eventobj=eventobj.parentNode.parentNode;
		}

		return true;
	}
	else
	{
		return false;
	}
}

//Function to highlight form element
function MakeItLight(e)
{
	eventobj = ns6? e.target : event.srcElement;

	if (previous != '')
	{
		if (checkel(previous))
		{
			previous.style.backgroundColor='';
		}

		previous = eventobj;

		if (checkel(eventobj))
		{
			eventobj.style.backgroundColor=focuscolor;
		}
	}
	else
	{
		if (checkel(eventobj))
		{
			eventobj.style.backgroundColor=focuscolor;
		}

		previous=eventobj;
	}
}

