$(document).ready(function() {
	
	$('.sm-facebook').bind('click', function() {
		link = $(this).attr('href');
		out = 'http://www.facebook.com/sharer.php?u=' + encodeURI(link);
		window.open(out,'','width=900,height=400');
		return false;
		
	});
	
	var currentTrigger = null;
	
	var trigger = $(".socialPopupLink").overlay({ 
    	expose: { 
	        color: '#ddd', 
	        loadSpeed: 200, 
	        opacity: 0.9 
	    }, 
		api: true,
		onBeforeLoad : function () {
			theNetwork = this.getTrigger().attr('title');
			currentTrigger = this;
			link = this.getTrigger().attr('href');
			$('#sm-network').val(theNetwork);
			$('#sm-link').val(link);
		
			switch (theNetwork) {
				case "Twitter": 
					$('#prompt textarea').text(link);
                   break;
				case "Facebook": 
					$('#prompt textarea').text(link);

                   break;
				case "StudiVz": 
					$('#prompt textarea').text(link);

                   break;
				default : 
					$('#prompt textarea').text(link);
				
			}
			
		},
	    closeOnClick: false 
	  });
	
	
	$("#prompt form").submit(function(e) { 
//		console.log(trigger.getTrigger());
		theNetwork = $('#sm-network').val();
//		console.log(theNetwork);
		link = $('#sm-link').val();

	    currentTrigger.close(); 
	    // get user input 
	    var input = $("textarea", this).val(); 

	    // do something with the answer 
	 //   triggers.filter('button[type=submit]').html(input);
	 	link = encodeURI(link);	
	//	input = '';
	//	console.log(input);
		switch (theNetwork) {
			case "Twitter": 
				var out = 'http://twitter.com/home?status=' + replaceUmlauts(input,0);
                  break;
			case "Facebook": 
				var out = 'http://www.facebook.com/sharer.php?u=' + link  +'&t=' + encodeURI(input);
                   break;
			case "StudiVz":
				var out = 'http://www.studivz.net/Link/ExternLink/Url/?u=' + link  + '&desc=' + encodeURI(input);
                  break;
			default : 
				var out = 'http://twitter.com/home?status=' + input;
		}

		window.open(out,'','width=900,height=400');
	    // do not submit the form 
	    return e.preventDefault(); 
	});
	
	
});

function replaceUmlauts(string, index){
		    var anArray = new Array(2);
		    anArray[0] = new Array("Ö", "ö", "Ä", "ä", "Ü", "ü", "ß");
		    anArray[1] = new Array("Oe", "oe", "Ae", "ae", "Ue", "ue", "ss");
		    
		    for (var i=0; i<anArray[index].length; i++){
				myRegExp = new RegExp(anArray[index][i],"g");
				string = string.replace(myRegExp, anArray[(index==0?1:0)][i]);
			}
		    return string;
		}

function URLEncode(plaintext) {
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	// document.URLForm.F2.value = encoded;
	//   document.URLForm.F2.select();
	return encoded;
};

/**
*
*  UTF-8 data encode / decode
*  http://www.webtoolkit.info/
*
**/

var Utf8 = {
 
	// public method for url encoding
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// public method for url decoding
	decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}
