(function($){$.fn.extend({limit:function(limit,element){var interval,f;var self=$(this);$(this).focus(function(){interval=window.setInterval(substring,100)});$(this).blur(function(){clearInterval(interval);substring()});substringFunction="function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";if(typeof element!='undefined')substringFunction+="if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}";substringFunction+="}";eval(substringFunction);substring()}})})(jQuery);
(function($) {
    $.fn.sharehelper = function(service, options) {
        var options = $.extend({}, $.fn.sharehelper.defaults, options);
        return this.each(function() {
            if (SERVICES[service]===undefined)
                throw "Unrecognized service: " + service;
            $(this).attr('href', SERVICES[service].replace('{{url}}', options['url']).replace('{{title}}', options['title']));
            if (!!options['callback'])
                $(this).bind('click', function(){ options['callback'].call(this);});
            if (options['new_window'])
                $(this).bind('click', function(e){ e.preventDefault(); window.open(this.href);});
        });
    };
    var SERVICES = {
      reddit:     "http://reddit.com/submit?url={{url}}&title={{title}}",
      stumbleupon:     "http://www.stumbleupon.com/submit?url={{url}}",
      teno:     "http://www.technorati.com/faves?add={{url}}",
      tw:     "http://twitter.com/home?status={{url}}",
      digg:       "http://digg.com/submit?url={{url}}&title={{title}}",
      facebook:   "http://www.facebook.com/sharer.php?u={{url}}&title={{title}}",
      delicious:  "http://del.icio.us/post?v=2&url={{url}}&title={{title}}",
      myspace:    "http://www.myspace.com/Modules/PostTo/Pages/?l=3&u={{url}}&t={{title}}&c=",
      google:     "http://www.google.com/bookmarks/mark?op=edit&bkmk={{url}}&title={{title}}"
    };
    //default settings
    $.fn.sharehelper.defaults = {
        new_window: true,
        title: encodeURIComponent(document.title),
        url: encodeURIComponent(window.location.href),
        callback: null
    };
})(jQuery);
(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}
var elements=this;if("scroll"==settings.event){$(settings.container).bind("scroll",function(event){var counter=0;elements.each(function(){if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});var temp=$.grep(elements,function(element){return!element.loaded;});elements=$(temp);});}
return this.each(function(){var self=this;$(self).attr("original",$(self).attr("src"));if("scroll"!=settings.event||$.belowthefold(self,settings)||$.rightoffold(self,settings)){if(settings.placeholder){$(self).attr("src",settings.placeholder);}else{$(self).removeAttr("src");}
self.loaded=false;}else{self.loaded=true;}
$(self).one("appear",function(){if(!this.loaded){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))
[settings.effect](settings.effectspeed);self.loaded=true;}).attr("src",$(self).attr("original"));};});if("scroll"!=settings.event){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear");}});}});};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop();}
else{var fold=$(settings.container).offset().top+$(settings.container).height();}
return fold<=$(element).offset().top-settings.threshold;};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft();}
else{var fold=$(settings.container).offset().left+$(settings.container).width();}
return fold<=$(element).offset().left-settings.threshold;};$.extend($.expr[':'],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"});})(jQuery);
var act;
var actURL;
var returnID="return";
var showID="return";
var loadingID="loading";
var formID="mform";
var responseMethod=form_submit_response;
var get_responseMethod=do_get_response;
var needValidate=1;
var is_show_response=1;
var is_ajax=1;
var isPreview=0;
var sa;
var url_els;
var rte;
var s_edit_form_div;
var g_para = {"mark": "", "markID": ""};
var form_no_ajax=new Array("search","search_tag","upload_local","upload_web","upload_paste");
var form_need_login=new Array("submit_new","reply_form");
var re;
listen_form();
function listen_form(){
	$("form").bind("submit", form_submit);
}
$(".listening").bind("click", do_get);
function form_submit(){
	if(typeof(arguments[0])=="string"){
		formID=arguments[0];
		this.id=formID;
	}else{
		formID=this.id;
	}
	g_para.mark=formID;
	actURL=form_get_action();
	//$("#"+formID+" :submit").attr("disabled","true");
	form_class=$("#"+formID).attr("class");
	if(!form_class){
		form_class="";
	}
	if(jQuery.inArray(formID, form_no_ajax)!=-1 || form_class.indexOf("deirect")!=-1){
		is_ajax=0;
	}
	switch (formID){
		case "create_widget":
			$("#widget_preview").html("<div align='center'><img src='/img/loading.gif' class='loading'></div>");
			$("#jscode").val("");
		break;
		default:
		break;
	}
	if(!form_validate){
		return false;
	}
	$("#"+formID).clear_submit_return();
	show_loading();
	if(is_ajax==1){
		if(typeof(tinyMCE) !="undefined"){
			tinyMCE.triggerSave();
		}
		post_data=$("#"+formID).serialize();
		post_data+="&jmark=1&isSave=1";
		if(isPreview==1){
			post_data+="&isPreview=1";
		}
		$.ajaxSetup( {
			url: actURL,
			global: false,
			dataType: "json",
			success: responseMethod,
			data: post_data,
			type: "POST"
		} );
		$.ajax();
		return false;
	}
}
function form_submit_response(ajax_response){
	$("#"+formID+" :submit").removeAttr("disabled");
	hide_loading();
	re=ajax_response;
	var clear_form=1;
	var show_return_default=1;
	if(formID=="submit_new" && typeof(re.msg) =="undefined"){
		return 0;
	}	
	if(re.msg.indexOf("not_login")!=-1){
		re.msg='<div>Please <a href=/login target=_blank>click here to login</a>, then return here to submit again.</div>';

	}
	clear_form=re.clear_form;
	//Jump
	if(re.ok==1 && re.noJump !=1 && re.going){
		location.replace(re.going);
		//location.reload();
		return;
	}
	//noJump
	if(re.ok==1){
		switch (formID){
			case "reply_form":
			break;
			case "account":
			clear_form=0;
			break;
			case "login":
				$("#signform").dialog("close");
				if(re.reason=="post"){
					$("#submit_new").submit();
					return;
				}
				if(re.reason=="comment"){
					$("#reply_form").submit();
					return false;
				}
			break;
			case "vf":
				vsf();
			break;
			default:
			break;
		}
		if(clear_form==1){
			$('#'+formID).clearForm();
		}
	}
		if(show_return_default==1){
			$("#"+formID).show_submit_return(re.msg);
		}
}

function form_validate(){
	return 1;
	//	return $("#"+formID).validate().form();
}

function do_get(actURL){
	if(typeof(actURL) !="string"){
		actURL=this.href;
	}
	url_els=actURL.split("?")[0].split("/");
	g_para.mark=url_els[1];
	$.ajaxSetup( {
		url: actURL,
		global: false,
		dataType: "json",
		success: get_responseMethod,
		data: 'jmark=1',
		type: "GET"
	} );
	$.ajax();
	return false;
}
function do_get_response(ajax_response){
	re=ajax_response;
	if(re.ok==1){
		if(!(re.showID)){
			re.showID="return";
		}
		if(url_els[2]=='ma'){
				$('#'+re.mid).val(re.msg);
		}else{
			if(url_els[2]=='vs'){
				$('#vs .now').toggleClass('mv');
				$('#vs .now').removeClass('now');
				vsf();
			}
		}
		if(typeof(re.modalID) !="undefined"){
				$(".ui-dialog").html('');
				document.getElementById("modal_window").innerHTML=re.msg;
				show_modal_window();
				return;
		}
		$("#"+re.showID).html(re.msg);
	}else{
		re.msg=$(re.msg).text();
		switch (g_para.mark){
			case "bury":
			hide_bury(g_para.markID);
			break;
			default:
			if(re.msg.indexOf("login")!=-1){
				location.replace('/login?re=nl');
			}else{
				alert(re.msg);
			}
			break;
		}
	}
}
//general
function show_loading(){
	$("#"+formID+" [type=submit]").eq(0).after('<span class="feedback"><img src="/img/loading.gif" class="loading"></span>');
}
function hide_loading(){
	$("img.loading").remove();
}

jQuery.fn.show_submit_return= function(msg) {
	return this.each(function(){
		$("#"+this.id+" [type=submit]").eq(0).before("<span class='feedback'>"+msg+"</span>");
	});
};
jQuery.fn.clear_submit_return= function() {
	return this.each(function(){
		$(".Problem").remove();
		$(".Confirm").remove();
		$(".feedback").remove();
	});
};
function form_get_action() {
	_form_action=document.getElementById(formID).action;
	if(!_form_action){
		_form_action=this.location.href;
	}
	return _form_action;
};
$.fn.clearForm = function() {
  return this.each(function() {
 var type = this.type, tag = this.tagName.toLowerCase();
 if (tag == 'form')
   return $(':input',this).clearForm();
 if (type == 'text' || type == 'password' || tag == 'textarea')
   this.value = '';
 else if (type == 'checkbox' || type == 'radio')
   this.checked = false;
 else if (tag == 'select')
   this.selectedIndex = -1;
  });
};
function toggleIT(mark){
		$("#"+mark).toggle();

}
$(function() {
  $("img").lazyload();
});
function sp_show(){
labID=this.id;
	$("#"+labID+" input").click();
  switch(labID){ 
	  case   "s_reviews":
		$("#s_pcs").show();
		$("#p_topic_opt").html(' (required)');
		break;
	  default:
		$("#s_pcs").hide();
		$("#p_topic_opt").html('');
	  break;  
	}   
}
function showSbar(){
	$("#sbar").html("<h3>Share</h3><a href=javascript:void(0) id=facebook> </a><a href=javascript:void(0) id=digg> </a><a href=javascript:void(0) id=tw24> </a><a href=javascript:void(0) id=stumbleupon> </a><a href=javascript:void(0) id=delicious> </a><a href=javascript:void(0) id=fb> </a><a href=javascript:void(0) id=myspace> </a><a href=javascript:void(0) id=teno> </a><a href=javascript:void(0) id=reddit> </a><a href=http://www.addthis.com/bookmark.php?v=20 id=addthis target=_blank> </a>");
	$("#tw24").sharehelper('tw');
	$("#reddit").sharehelper('reddit');
	$("#digg").sharehelper('digg');
	$("#teno").sharehelper('teno');
	$("#stumbleupon").sharehelper('stumbleupon');
	$("#facebook").sharehelper('facebook');
	$("#delicious").sharehelper('delicious');
	$("#myspace").sharehelper('myspace');
	$("#google").sharehelper('google');
}
if(typeof(om) !="undefined" && (om=='site' || om=='q_all')){
	showSbar();
}
var is_qf=0;
function qf(thisid){
	if(typeof(tID) =="undefined"){
		thisid=this.id;
	}
	var str='';
	url_els=thisid.split("?")[0].split("_");
	mark=url_els[0];
	mid=url_els[1];
	qaform_id='form_'+thisid;
	hint='';
	if(mark=='qf'){
		qaform_act='/'+s+'/addq';
		bodyID='nq_1';
	}else{
		if(mid!=100){
			do_get('/'+s+'/ma/'+mid);
		}
		qaform_act='/'+s+'/adda';
		hint='<h3 class=hint id=hint_'+thisid+'>140</h3>';
		bodyID='oqa_'+mid;
	}
	if($("#"+qaform_id).length ){
		$('#'+qaform_id).toggle();
		return;
	}else{
		str='<form id='+qaform_id+' name='+qaform_id+' method=post action='+qaform_act+'>'+hint+'<textarea id='+bodyID+' name='+bodyID+' class=na></textarea> <input type=submit value="Submit" name=submit id=submit> <input type=button value="Cancel" name=cancel id=cancel onclick="toggleIT(\''+qaform_id+'\')"></form>';
		$("#"+thisid).after(str);
		$('#'+bodyID).limit('140','#hint_'+thisid);
		listen_form();
	}
	if(mark=='qf' && typeof(isHint) !="undefined"){
		if($("#mHint").length ){
			$('#mHint').toggle();
		}else{
			$('#'+qaform_id).append('<div id=mHint><a href=/account>Register your email</a> to get notified when your question answered.</div>');
		}
	}
}
function gtrack(){
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
try {
var pageTracker = _gat._getTracker("UA-253468-9");
pageTracker._trackPageview();
} catch(err) {}
}
function poll(){
	thiID=this.id;
	els=thiID.split("_");
	poll=els[1];
	$('#form_a_100').remove();
	$('#a_100').click();
	do_get('/'+s+'/spo/'+poll);
}
function showPbar(n1,n2,n3){
str="<div id=sp_1><span>Great</span></div><span id=no_1>"+n1+"</span><div id=sp_2><span>So so</span></div><span id=no_2>"+n2+"</span><div id=sp_3><span>Poor</span></div><span id=no_3>"+n3+"</span>";
$("#pbar").append(str);
$("#sp_1,#sp_2,#sp_3").bind("click", poll);
}
function vs(){
	$(this).addClass('now');
	v=$(this).html();
	do_get('/'+s+'/vs/'+v);
}
function vsf(){
	$('#form_a_100').remove();
	$('#a_100').click();
	$('#hint_a_100').before('<div class="fl Confirm">Saved successfully. What more do you wanna say?</div>');
	$('#oqa_100').val(re.msg);
}
function vf(){
	if($("#vf").length ){
		$('#vf').toggle();
		return;
	}else{
		str="<form name=vf id=vf method=post action=/"+s+"/vs class=fr><input id=v name=v size=15></input><input type=submit value=Add new name=new></form>";
		$("#"+this.id).after(str);
		listen_form();
	}
}
