SC = {};

Debug = {};

Debug.log = function (str) {
    console.log(str);
}

Share = {};

Share.createUserCustomInput = function (href, txtField, handler) {

    var ret, shareTxt;

    if(href) shareTxt = href + ' ... SoCute!!!';

    ret = $('<div class="customShare dialog formWrap"></div>');

    charCtDiv = $("<div class=\"charCt\">100</div>");

    charLimitDiv = $("<div class=\"limit\"><span>chars remaining:&nbsp;&nbsp;</span></div>")

    charLimitDiv.append(charCtDiv);

    ret.append(charLimitDiv);

    form = $("<form method=\"GET\" target=\"_BLANK\"></form>");

    form.submit( function (e) { handler(this); ret.dialog("close"); e.preventDefault(); return true; } );

    textArea = $('<textarea name="' + txtField + '">' + shareTxt + '</textarea>');

    form.append( textArea );

    form.append( $('<input class="button submitInput" type="submit" value="Share" />') );

    limitChars = function() {
	var maxChars = 140;
	var charsLeft = maxChars - this.value.length;
	
	if(charsLeft < 0 ) {
	    charCtDiv.addClass("overLimit");
	}
	else {
	    charCtDiv.removeClass("overLimit");
	}
	
	charCtDiv.text(charsLeft);
    };


    textArea.keyup(limitChars);
    textArea.keydown(limitChars);

    textArea.triggerHandler("keyup");

    ret.append(form);

    ret.dialog({modal: true, autoOpen: false, width: 400});
    return ret;

};

Share.applyHelpers = function () {

    $(".displayUrl .share.twitter a").click(

	  function(event) {

	      var shareBox, ipt, href="";


	      try {
		  ipt = $(this).parents(".displayUrl").children("input.url")[0];

		  href = ipt.value;
	      }
	      catch(e) { ; }

	      event.preventDefault();

	      shareBox = Share.createUserCustomInput(href, 'status', function (f) {
		      var val, reqUrl;

		      f.action = 'http://twitter.com/home';

		      f.submit();

		      return true;

		  }
		  );

	      shareBox.dialog("option", "title", "Share on Twitter");

	      shareBox.dialog("open");

	  }


    );

};

/* Public SCAPI */

window["SC"] = SC;
Debug["log"] = Debug.log;
SC["Debug"] = Debug;
Share["applyHelpers"] = Share.applyHelpers;
SC["Share"] = Share;

