// JavaScript Document

var panelOpen = Class.create();

panelOpen.prototype = {

    initialize: function(id) {
        this.id = id;
		this.id.invoke('observe', 'click', this.doaction.bindAsEventListener(this.id));
		
		
    },

    doaction: function(e) {
        //alert(e.target.className);
		var submenu = "expansion";
		$('load').show();
		if(e.target.id == "hide"){
			$(submenu).className = '';
			Effect.toggle(submenu, 'blind',{duration: 0.5});
			$('load').hide();
		}else if(e.target.id == "expand"){
			var url = "/toolbar/prefs";
			var formData = null;
			var heading = "Preferences";
			// do check to see if preference visible
			//alert(e.target.id);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('prefs')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = '';
					$(submenu).className = 'prefs';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'prefs';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "flag"){
			var url = "/toolbar/flag";
			var formData = null;
			var heading = "Flag";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('flagged')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					$(submenu).className = '';
					$(submenu).className = 'flagged';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'flagged';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "share"){
			var url = "/toolbar/share";
			var formData = null;
			var heading = "Bookmark and Share";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('sharing')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = '';
					$(submenu).className = 'sharing';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'sharing';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "tweet"){
			var url = "/toolbar/tweet";
			var formData = null;
			var heading = "Tweet";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('tweeting')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = '';
					$(submenu).className = 'tweeting';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'tweeting';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "toptweets"){
			var url = "/toolbar/toptweets";
			var formData = null;
			var heading = "Top Tweets";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('toptweets')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = '';
					$(submenu).className = 'toptweets';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'toptweets';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "heatcheck"){
			var url = "/toolbar/whatshot";
			var formData = null;
			var heading = "What's Hot Right Now";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('heatingup')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = '';
					$(submenu).className = 'heatingup';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'heatingup';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}else if(e.target.className == "comment"){
			var url = "/toolbar/comment";
			var formData = null;
			var heading = "Leave A Comment";
			// do check to see if preference visible
			//alert(e.target.className);
			if ($(submenu).visible()){
				//alert("Visible");
				if ($(submenu).hasClassName('usercomment')){
					$(submenu).className = '';
					Effect.toggle(submenu, 'blind',{duration: 0.5});
					$('load').hide();
				}else{
					//alert("replace content");
					$(submenu).className = 'usercomment';
					new contentSwitch(url, formData, heading);
				}
				
			}else{
				// replace content
				$(submenu).className = 'usercomment';
				new contentSwitch(url, formData, heading);
				Effect.toggle(submenu, 'blind',{duration: 0.5});	
			}
		}
		
    }

}

var contentSwitch = Class.create();

contentSwitch.prototype = {

    initialize: function(url, formData, heading) {
        this.url = url;
		this.formData = formData;
		this.heading = heading
		this.doaction(this.url, this.formData, this.heading);
		
    },
    doaction: function(url, formData, heading) {
        
		//alert(url);
		new Ajax.Request(url, {method: 'post', parameters: "formData=" + encodeURIComponent(formData),
		  onSuccess: function(transport) {
			//alert("here" + transport.responseText);
		   var json = transport.responseJSON;
			if (200 == transport.status )
			{
			$('datarow').innerHTML = transport.responseText;
			$('expansion-header').innerHTML = heading; 
			$('expansion').show();
			$('load').hide();
			}else{
				$('load').hide();
				return false;
			}
		}});
		
    }

}

var hideMe = Class.create();

hideMe.prototype = {

    initialize: function(id) {
        this.id = id;
		//this.id.invoke('observe', 'click', this.doaction.bindAsEventListener(this.id));
		//alert(id);
		//this.doaction.bindAsEventListener(this.id);
		this.doaction(this.id);
		
    },

    doaction: function(e) {
        //alert(e.target.id);
		var data = $('hidebar').serialize(true);
		var formdata = Object.toJSON(data);
		var url = "/toolbar/hidebar";
		$('load').show();
		//alert(url);
		new Ajax.Request(url, {method: 'post', parameters: "formData=" + encodeURIComponent(formdata),
			  onSuccess: function(transport) {
				//alert("here " + url + " " +transport.responseText);
			   var json = transport.responseJSON;
				if (200 == transport.status && 1 == json.success)
				{
					$('load').hide();
				}else{
					$('load').hide();
					return false;
				}
				
			}});
		
    }

}

var screenRes = Class.create();

screenRes.prototype = {

    initialize: function() {
		this.doaction();
		
    },

    doaction: function() {
        

		var url = "/toolbar/screenres?sw="+ screen.width +"&sh="+ screen.height;

		new Ajax.Request(url, {method: 'post', parameters: "formData=",
			  onSuccess: function(transport) {
				//alert("here " + url + " " +transport.responseText);
			   var json = transport.responseJSON;
				if (200 == transport.status && 1 == json.success)
				{
					var headID = document.getElementsByTagName("head")[0];         
					var cssNode = document.createElement('link');
					cssNode.type = 'text/css';
					cssNode.rel = 'stylesheet';
					cssNode.href = json.style;
					cssNode.media = 'screen';
					headID.appendChild(cssNode);
					return true;
				}else{
					return false;
				}
				
			}});
		
    }

}