function add_plugin () {
	if (typeof window.sidebar.addSearchEngine == 'function') {
		window.sidebar.addSearchEngine('plugin.src', '/imgages/favicon.png', 'URL Shortener', 'Shorten a URL!');
	} else {
		alert('This is a Mozilla FireFox Only Feature!');
	}
}

function showMessage() {
  new TransparentMenu('msg', {top:160, insideElement:'url', displayMode:'now', hideMode:'timeout', hideDelay: 3});
}

var indicatorImg = new Image();
var errorImg = new Image();
var okImg = new Image();
var reservedImg = new Image();
var toolongImg = new Image();

var app = {
	load : function() {
		indicatorImg.src = "images/indicator.gif";
		errorImg.src = "images/_ERROR.png";
		okImg.src = "images/_OK.png";
		reservedImg.src = "images/_RESERVED.png";
		toolongImg.src = "images/_TOOLONG.png";
		$("url").disabled = false;
  		$("url").value = $("url").title;
		$("url").className = "input";
		$("tag").disabled = false;
		$("tag").value = $("tag").title;
		$("tag").className = "inputTag";
		$('submit').disabled = false;
	},
	
	submit : function() {
		var eUrl = $("url");
		var eTag = $('tag');
		var eMsg = $("msg");
		if (eUrl.value.length == 0 || eUrl.value == eUrl.title) {
			eMsg.removeClassName("transMsgError");
			eMsg.addClassName("transMsgNormal");
			eMsg.update("You forgot to enter your URL!");
			setTimeout("showMessage()", 300);
			return;
		}

		var sUrl = eUrl.value.toString().toLowerCase();
		sUrl = sUrl.strip();
		if (!sUrl.startsWith("http://") && !sUrl.startsWith("https://")) {
			eUrl.value = "http://" + sUrl;
		}	
				
		var valid = Validation.get("validate-url").test(eUrl.value);
		if (!valid) {
			eMsg.removeClassName("transMsgNormal");
			eMsg.addClassName("transMsgError");
			eMsg.update("Please enter <u>valid <b>URL</b></u>!");
			setTimeout("showMessage()", 300);
			return false;
		}
		
		if (eTag.title == eTag.value) {
			eTag.disabled = true;
		}
		else {
			var sTag = eTag.value.toString().toLowerCase();
			sTag = sTag.strip();
			sTag = sTag.replace(/\s+/gi, '-');
			eTag.value = sTag;
		}
		
		var r = $("result");
		r.addClassName("visible");
		r.addClassName("boxed");
		
		r.update("");
		if (!$("indicator")) {
			var newIndicatorImg = document.createElement('img');
			newIndicatorImg.setAttribute("id", "indicator");
			r.appendChild(newIndicatorImg);
		}
		$("indicator").src = indicatorImg.src;
									
		new Ajax.Request('./', {
			method: "post",
			postBody: $('f').serialize(),
			onSuccess: function(transport) {
				var response = transport.responseText;		
				r.update(response);
                tabs.initializeTabs('tabs');
                Effect.toggle('seo','appear');
				//app.getStats();
			}
		});
		return false;
	},
	
	getStats : function() {
		new Ajax.Request('./', {
			method: "post",
			parameters: 'stats=1',
			/*postBody: $('f').serialize(),*/
			onSuccess: function(transport) {
				var json = transport.responseText.evalJSON();
				$('statsSubmited').update(json.submited);
				$('statsClicks').update(json.clicks);
			}
		});
	}
}

var url = {
	focus: function() {
		var eUrl = $("url");
		eUrl.className = "inputFocus";
		if (eUrl.value == eUrl.title) {
			eUrl.value = "";
		}
		else { eUrl.select(); }
	},
	blur: function() {
		var eUrl = $("url");
		if (eUrl.value.length == 0 || eUrl.value == eUrl.title) {
			eUrl.value = eUrl.title;
			eUrl.className = "input";
		}
	}
}

var tag = {
	focus: function() {
		var eTag = $("tag");
		eTag.className = "inputFocusTag";
		if (eTag.value == eTag.title) {
			eTag.value = "";
		}
		else { eTag.select(); }
	},
	blur: function() {
		var eTag = $("tag");
		if (eTag.value.length == 0 || eTag.value == eTag.title) {
			eTag.value = eTag.title;
			eTag.className = "inputTag";
		}
	}
}
/*
new Ajax.PeriodicalUpdater('index.php',
  {
    method: 'post',
	parameters: $H('stats'),
    frequency: 1,
    decay: 1,
	onSuccess: function(transport) {
		var response = transport.responseText;
	}
  });
*/
// o - bookmark, 1 - email
var nav = {
    activeId : 0,
    
    hideActive : function() {
        if (this.activeId == 0) {
            //$('resultBookmark').style = 'display:none';
            $('resultBookmark').hide();
        }
        else if (this.activeId == 1) {
            //$('resultEmail').style = 'display:none';
            $('resultEmail').hide();
        }
    },
    
    show : function(id) {
        //$('resultBookmark').toggle();
        $('resultEmail').toggle();
        //this.hideActive();
        //$(id).toggle();
        //Effect.toggle(id,'appear');
        if (id == 'resultBookmark') {
            //this.activeId = 0;
            //$('resultBookmark').toggle();
        }
        else if (id == 'resultEmail') {
            //this.activeid = 1;
            //$('resultEmail').toggle();
        }
    }
}

var bookmarker = {
	bookmark: function(url) {
		if (Prototype.Browser.Gecko) {
			window.sidebar.addPanel(url, url, '');
		}
		else if (Prototype.Browser.IE) {
			window.external.AddFavorite(url, url);
		}
	}
}

Ajax.Responders.register({
  onCreate: function(){
  	$("url").disabled = true;
  	$("tag").disabled = true;
    $('submit').disabled = true;
  },
  onFailure: function(){
  	alert("Error! Please refresh page.");
  },
  onComplete: function(){
  	$("url").disabled = false;
	$("url").className = "input";
	$("tag").disabled = false;
	$("tag").className = "inputTag";
    $('submit').disabled = false;
  }
});

Event.observe(window, "load", app.load);
Event.observe($("url"), "focus", url.focus);
Event.observe($("url"), "blur", url.blur);
Event.observe($("tag"), "focus", tag.focus);
Event.observe($("tag"), "blur", tag.blur);
Event.observe($("submit"), "click", app.submit);
