var Toolbar = Class.create({
		
	initialize: function() {
	
	this.browser = 'ie'; 
    this.myTool = null;

    try {
        if (navigator.userAgent.indexOf('Firefox') != -1) {
            this.browser = 'ff';
        } 
    } catch(e) {} 
    
    },
	toolBarInit: function(url_api_login, local_login_form, shops, update_options, tb){

    	//define variables
		this.myTool = tb;
		this.url_domain = this.myTool.Variable('#toolbar_url_domain#');
		this.local_login_form = local_login_form;
		this.shops = shops;
		var arr_XMLData = new Array(); 

		// update XML Data
		arr_XMLData.push({'sName': 'login_form', 'sXMLData': this.getXMLLogin()});
		arr_XMLData.push({'sName': 'shop_promos', 'sXMLData': this.getXMLEmpty()}); 
		
		//alert('si');
		if(update_options){
			arr_XMLData.push({'sName': 'options', 'sXMLData': this.getXMLOptions()});  
			this.myTool.Variable('#update_options#') = true;
		}else{
			//alert('no');
		}
		
        this.myTool.SetPropertyById("menu_option_kimod", "href", this.myTool.Variable('#toolbar_domain#'));
        
        this.myTool.Variable('#url_api_login#') = this.url_domain + url_api_login; 
        this.myTool.Variable('#update_process_logout#') = true;
        
        // update XMLData
        this.updateXMLArray(arr_XMLData);

        //this.myTool.RegistryValue("HKEY_CURRENT_USER\\Console\\kimod_barra\\update_shops") = 'true';
	},
	toolBarLogout: function(user_name, url_api_logout, url_kimod_logout, url_update, validate_domain, shops, number_stores, updateShops, tb){
	 	//define variables
		this.myTool = tb;
		this.url_domain = this.myTool.Variable('#toolbar_url_domain#');
		this.user_name = user_name;
		this.url_api_logout = this.url_domain + url_api_logout;
		this.url_kimod_logout = this.url_domain + url_kimod_logout;
		this.url_update = this.url_domain + url_update;
		this.shops = shops;
		this.number_stores = number_stores;
		var arr_XMLData = new Array();
		//set empty url
		//this.myTool.setPropertyById("toolbar_tracking_users", "url", "");		
		//var url = this.myTool.url.gsub("&", "**");

		// redirect to check promo's
		/*if(this.checkShopDomain()){
			this.myTool.setPropertyById("toolbar_tracking_users", "url", this.url_update+'?domain='+this.myTool.domain+'&url='+url);
		}*/
		
		if(validate_domain){
			// validate domain
			this.validateDomain();
		}

		if(updateShops){
			this.closeBubbleToolbar();
			
			// update variables to cmd_logout_script
			this.updateVariablesLogout();
			
			// update xml login
			arr_XMLData.push({'sName': 'login_form', 'sXMLData': this.getXMLLogout()});
			
			// update xml shops
			arr_XMLData.push({'sName': 'shop_promos', 'sXMLData': this.getXMLShops()});
		}
		
		if(this.myTool.Variable('#valide_domain#') && this.shops.length!=0){ 
			this.checkShopDomain();
		}
		this.myTool.Variable('#update_process_logout#') = false;
				
		// update XMLData
		//this.setPropertyById('toolbar_init', 'url', '');
		this.updateXMLArray(arr_XMLData);
	},
	toolbarDocumentComplete: function(tb){
	},
	updateToolBar:function(url_init, tb){
		this.myTool = tb;
		
		var update_options = false;
		this.myTool.setPropertyById("toolbar_init", "url", url_init+'?update_options='+update_options);
		//this.reloadToolbar();
	},
	updateXMLArray: function(arr_XMLData){

		for (var i=0; i<arr_XMLData.length; i++) {
			this.updateXML(arr_XMLData[i]['sName'], arr_XMLData[i]['sXMLData']);
		}
		
        //this.reloadToolbar();
	},
	updateXML: function(sName, sXMLData){

        if (this.browser =='ie') {
            
        	this.myTool.CustomXML(sName) = sXMLData;
        } else { 
        
        	this.myTool.setCustomXML(sName, sXMLData);
        }
		
        this.reloadToolbar();
	},
	getXMLOptions: function(){
		var image_shop = null;
		var j =1;
		var xml_options = '<toolbar>'
	       		+'<BUTTON id="main_menu" caption="" type="Single" visibility="1" image="kimod.png" undisabled="1">'
	       		+'<MENU id="tbs_menu_0116222" type="Single">'
	            +'<ITEM id="menu_option_kimod" caption="Ir a kimod" visibility="1" enabled="1" command="redirect" imagef="kimod_icon.png" href="'+this.myTool.Variable('#toolbar_domain#')+'"/>'
				+'<SEPARATOR id="tbs_separator_menu"/>';
				/*for (var i=0; i<this.number_stores; i++) {
					image_shop = "provider"+j+".png";
					xml_options += '<ITEM id="menu_option_kimod_shop_'+this.shops[i]['id']+'" caption="'+this.shops[i]['name']+'" visibility="1" enabled="1" command="redirect" imagef="'+image_shop+'" href="'+this.shops[i]['domain']+'"/>' +
					'<SEPARATOR id="tbs_separator_menu_'+this.shops[i]['id']+'"/>';
					j++;
			    }*/
			
			xml_options += '</MENU>'
	    	+'</BUTTON>'
	        +'</toolbar>';
		
		return xml_options;
	},
	getXMLLogin: function(){
		var xml_login = '<toolbar>'
			+ '<BUTTON id="bubble" caption="Iniciar Sesión" type="Split" image="user_inactive.png">'
			//+ '<BUBBLE width="240" height="60" autoclose="0" type="Split" use_inbanner="0" use_scroll="0" use_size="0" href="http://localhost:8083/api/toolbarLoginForm"/>'
				+ '<BUBBLE width="250" height="64" autoclose="0" type="Single" use_inbanner="0" use_scroll="0" use_size="0" local="'+this.local_login_form+'" href="'+this.local_login_form+'" sync="BeforeNavigate"/>'
			+ '</BUTTON>'
            + '</toolbar>';
		
		return xml_login;
	},
	getXMLLogout: function(){		 
		var xml_logout =  '<toolbar>'
			+ '<BUTTON id="btn_user" caption="'+this.user_name+'" type="Single" image="user_active.png" style="bold">'
			+ '<MENU id="tbs_menu_login" type="Single">'
			+ '<ITEM id="tbs_menu_login_item1" caption="Cerrar Sesión" visibility="1" enabled="1" command="cmd_logout_script" img="41" />'
			+ '</MENU>'
			+ '</BUTTON>'
			+ '<SEPARATOR id="tbs_separator_02"/>'
	        + '</toolbar>';
		
		return xml_logout;
	},
	getXMLEmpty: function(){
		var xml_empty = '<toolbar></toolbar>';
		
		return xml_empty;
	},
	getXMLShops: function(){
		var xml_shops =  '<toolbar>';
		var image_shop = null;
		var j = 1;
			for (var i=0; i<this.number_stores; i++) {
					//var caption = ;
					image_shop ="provider"+j+".png";
					//xml_shops += '<BUTTON id="'+shop_id+'" caption="'+caption+'" image="'+this.shops[i]['image']+'" hot_image="'+hotimage+'" captionp="'+captionp+'" imgp="'+imagep+'" type="Split" command="'+command+'" href="'+this.shops[i]['url_zanox']+'"/>'
					xml_shops += '<BUTTON id="'+this.shops[i]['id']+'" caption="'+this.shops[i]['name']+'" image="'+image_shop+'" command="redirect" type="Split" href="'+this.shops[i]['url_zanox']+'"/>'
							  +  '<SEPARATOR id="tbs_separator_'+this.shops[i]['id']+'"/>';
					j++;
		     }
		
		xml_shops +=  '</toolbar>';
		
		this.myTool.Variable('#toolbar_update_shops#') = false;
	
		return xml_shops;
	},
	checkShopDomain: function(){		
		var image_shop = null;
		var j=1;
		for (var i=0;i<this.number_stores;i++) {
			image_shop = "provider";
				if(this.shops[i]['url_zanox'] == this.myTool.url){
					image_shop += j+"activo.png";
					this.setPropertyById(this.shops[i]['id'], 'caption', '');
				}else{
					image_shop += j+".png";
					this.setPropertyById(this.shops[i]['id'], 'caption', this.shops[i]['name']);
				}
			
				this.setPropertyById(this.shops[i]['id'], 'image', image_shop);
				j++;
		}

		this.myTool.Variable('#valide_domain#') = false;
	    
	},
	updateVariablesLogout: function(){

		this.myTool.Variable('#url_api_logout#') = this.url_api_logout;  
		this.myTool.Variable('#url_kimod_logout#') = this.url_kimod_logout;
		
	},	
	reloadToolbar: function(sName, sXMLData){
		this.myTool.Reload();
	},
	closeBubbleToolbar: function(){
		this.myTool.closeBubble();
	},
	setPropertyById: function(id, property, value){
		this.myTool.SetPropertyById(id, property, value);
	},
	getPropertyById: function(id, property){
		return this.myTool.GetPropertyById(id, property);
	},
	validateDomain: function(){
		
        if(this.myTool.domain == this.myTool.Variable('#toolbar_domain#')){
        
			this.myTool.redirect(this.url_domain);

		}else{
			//myTool.redirect(current_url);
		}
	},
	getHostname: function(str) {
		 
	 	var re = new RegExp('^(?:f|ht)tp(?:s)?\://([^/]+)', 'im'); 
		return str.match(re)[1].toString(); 
	} 
});