/**
 * Common Javascript
 *
 * @author	  Mustabasic Reuf & Nicolas Zanghi
 * @copyright Copyright &copy; 2009, Mustabasic Reuf & Nicolas Zanghi
 * $Id$
 *
 */

var msg ;
msg = top.document.createElement('div');
msg.id = 'fbc';
msg.className = "feed_back_div";


function FeedBack(message){

	var tmp = "";
	var error = false;
	// new system, SetFB
	if (typeof message == "object" && message.responseText == undefined ){

		if(message['notice'] != undefined){
				tmp = message['notice'][0];
		}

		if(message['error'] != undefined){
				tmp = message['error'][0];
				error = true;
				msg.className = "feed_back_div_error";
				msg.onclick = function(e){
					Element.remove(this);
					msg.className = "feed_back_div";
					msg.innerHTML = "";

				}
		}

	//old system
	}else if (typeof message == "object" && message.responseText != ""){

        tmp = message.responseText ;
	}

	var el =  top.document.createElement('div');
	el.id = Math.random();
	el.innerHTML = tmp;
 	
 	msg.appendChild(el);

 	top.document.body.appendChild(msg);

	if(!error) {
			new Effect.SwitchOff(el, {delay : 2});

			new PeriodicalExecuter(function(pe){
					Element.remove(el)
					pe.stop();
				}, 3);
	}
}

/**
* Globalhandlers will take care about notification when a
* request is created and when is finished to inform user about
* what is going on
*/
var globalHandlers = {

	onException: function(request, exception) {
		Element.hide('progress');
		alert("Js Exception: " + exception );
	},
	onError : function(request, exception) {
		Element.hide('progress');
		alert("Js Error: " + exception);
	},

	onCreate: function(request, transport){
		Element.show('progress');
	},

	onComplete: function(request, transport){

		if (Ajax.activeRequestCount == 0)
			Element.hide('progress');

		FeedBack(transport.headerJSON);

	} // end of complete
};

Ajax.Responders.register(globalHandlers);

/*************************************************/

/**
* Put focus on search field , if any
*
*/
function GetFocus(){
	if(document.searchForm && document.searchForm.searchString){
		document.searchForm.searchString.focus();
	}
}

/**
* Detect current browser. Walter Zorn
*/
function IsIE(){
	var n = navigator.userAgent.toLowerCase();

	var ie = (n.indexOf("msie") >= 0 && document.all );
	return ie;
}

/**
* Switch display block or none on given element ID
*/
function DisplaySW(element_id){

	var e = $(element_id);

    var new_display = (e.tagName == 'TBODY') ? 'table-row-group' : 'block';

	e.style.display = (e.style.display == 'none' || e.style.display == '') ? new_display : 'none' ;

}

/**
* Switch visibility visible or none on given element ID
*/
function VisibilitySW(element_id){

	var e = $(element_id);
	e.style.visibility = (e.style.visibility == 'hidden' || e.style.visibility == '') ? 'visible' : 'hidden' ;

}

/**
* Find Y position of given element
*/

function FindY( element_id ){

	var obj = $(element_id);
	var curtop = 0;

	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;

	return curtop;
}
 
/**
* Find Y position of given element
*/
function FindX( element_id ){

	var obj = $(element_id);
	var curleft = 0;

		if (obj.offsetParent){
			while (obj.offsetParent){
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;

		return curleft;
}

/**
* invoice qty =< order qty for edit qty client order
*/
function VerifInvoiceQty(formID, invoice_qty) {

	var qty = document.forms[formID].quantity.value;

	if (parseInt(qty) < parseInt(invoice_qty))
		document.forms[formID].quantity.value = invoice_qty;

}


