// Varie Classi Javascript per gestire il Framework
// Lorenzo Ricci
// lorenzo.ricci@email.it
//var ste;

var Site = Class.create();

Site.prototype = {

	initialize: function( ) { 
		this.url_main_position = location.pathname.lastIndexOf('/');
		this.url_main_address = location.pathname.substring(0,this.url_main_position);
		this.ajax_ws_url = location.protocol + '//' + location.host + this.url_main_address + '/services/ajax/server.php5' ;
	} ,

	GetSID: function() {
		return $('idSessione').innerHTML;
	},

	SelectBoxModel: function ( ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SelectBoxModel',
				container: 'main-operation', 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	}, 

	SetBoxModel: function ( model ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SetBoxModel',
				container: 'main-operation',
				select: model, 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	},
 
	SelectColorModel: function ( ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SelectColorModel',
				container: 'main-operation', 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	}, 

	SetColorModel: function ( model ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SetColorModel',
				container: 'main-operation',
				select: model, 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	},
	SelectCategoriesNavigation: function ( ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SelectCategoriesNavigation',
				container: 'main-operation', 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	}, 

	SetCategoriesNavigation: function ( model ) {
		new Ajax.Request(this.ajax_ws_url, 
			{ 
			method: 'get',
			onSuccess: function(transport) {
				oSiteResponder.ajaxSelect(transport.responseXML);
				},
			parameters:	$H({
				action: 'AjaxSite',
				request: 'SetCategoriesNavigation',
				container: 'main-operation',
				select: model, 
				sid: this.GetSID() 
				}).toQueryString()
			});
		return true;
	},
 
	Version: function() {
		alert('ok');
	}

}
var oSite = new Site();

var SiteResponder = Class.create();

SiteResponder.prototype = {

	initialize: function( ) {
		//alert('ProjectsResponder');
	},

	ajaxSelect: function(ajaxResponse) {
		var response = ajaxResponse.getElementsByTagName("ajax-response");

		if (response == null || response.length != 1) return;

		var xmlResponseElements = response[0].childNodes ;
      for ( var i = 0 ; i < xmlResponseElements.length ; i++ ) {
         var responseElement = xmlResponseElements[i];

         // only process nodes of type element.....
         if ( responseElement.nodeType != 1 ) continue;

         var responseType = responseElement.getAttribute("type");

         if ( responseType == "object" )
        		this.ajaxUpdate( responseElement );
         else
            alert('Tipo risposta AJAX non riconosciuta : ' + responseType );
      }
	},

	ajaxUpdate: function(ajaxResponse) {

		var actionNode 	=  oXmlParseUtils.getXMLNode( ajaxResponse, 'action' );
		var SID 				=  oXmlParseUtils.getXMLNodeAttr( actionNode, 'sid' );

		switch(actionNode.nodeValue) 
			{
			case 'selectModel':
				var BoxModel 	=  oXmlParseUtils.getXMLNode( ajaxResponse, 'model-list' );
				var BoxParent = $('admin_content'); 
				BoxParent.innerHTML = BoxModel.nodeValue;
			break;
			case 'updateOk':
				var BoxParent = $('admin_content'); 
				BoxParent.innerHTML = 'Operazione completata con successo!';
			break;
			}

	},	

	Version: function() {
		alert('ok');
	}

} 

var oSiteResponder = new SiteResponder();
