/**
 * Common js
 * used it by whole site
 * Kaven 2011-12-1 HW.js
 */
//common util
var iceURL = "http://nublogs.com/api/tw";

(function($){
	window.HW={
	 	getCookie:function(key){
	 		return TY.io.cookie.get(key);
	 	},
	 	setCookie:function(key,value,config){
			var defConf={
					domain:'.nublogs.com',
					expires:''
				};
			if (config) {
				$.extend(defConf,config);
			}
			TY.io.cookie.set(key,value,defConf);
	 	},
	 	delCookie:function(key,config){
	 		var defConf={
					domain:'.nublogs.com'
				};
			if (config) {
				$.extend(defConf,config);
			}
	 		TY.io.cookie.del(key,defConf);
	 	},
	 	//user
	 	getUserId:function(){
			var user=this.getCookie("user");
			var uid=TY.param.getParam('i',user);
			if(uid){
				return uid;
			}else{
				return null;
			}	 		
	 	},
	 	isOnline:function(){
	 		var user=this.getCookie("user");
	 		if(user){
	 			return true;
	 		}else{
	 			return false;
	 		}
	 	},
	 	isSelf:function(){
	 		var userid=HW.getUserId(),urlid=location.href.split("/")[3];
			if (+userid===+urlid) {
				return true;
			}else {
				return false;
			}
	 	},
	 	activityList:null,
	 	myFollow:[],
		friendPlugin:null
	 };
})(jQuery);

  
/*Language switching*/
(function($){
	$("a#lang-en").live("click",function(){saveLang("en_US");});
	$("a#lang-es").live("click",function(){saveLang("es_ES");});
	
	var saveLang = function(lang){
		HW.setCookie("locale",lang,{expires:365,path:"/",domain:'.nublogs.com',secure:false});
		location.reload();
	}
})(jQuery);

/**
 * common config
 * */
 (function(){
 	 TY.module.add("HW.twitterpost.css",{path:'/css/twitterpost.css',type:"css",charset:'utf-8',rely:null});
 	 TY.module.add("HW.twitterPost",{path:'/js/plugins/twitterPost.js',type:"js",charset:'utf-8',rely:['TY.util.textChange','HW.twitterpost.css','TY.util.cursorPoint']});
 	 TY.module.add("HW.pop.css",{path:'/css/pop.css',type:"css",charset:'utf-8',rely:null});

	 TY.module.add("HW.topic",{path:TY.isDebuger()+"/ui/TY.ui.topic.js",type:"js",charset:'utf-8',rely:['TY.util.cursorPoint']});
 	 TY.module.add("HW.face",{path:TY.isDebuger()+"/ui/TY.ui.face.js",type:"js",charset:'utf-8',rely:['TY.util.cursorPoint']});
 	 TY.module.add("HW.upload",{path:"/js/plugins/uploadPhoto.js",type:"js",charset:'utf-8',rely:['TY.util.cursorPoint']});
 	 TY.module.add("HW.video",{path:"/js/plugins/video.js",type:"js",charset:'utf-8',rely:['TY.util.cursorPoint']});

 	 TY.module.add("HW.pop",{path:'/global/ty/ui/TY.ui.pop.js',type:"js",charset:'utf-8',rely:['HW.pop.css']});
	 
 	 TY.module.add("HW.template.css",{path:'/css/template.css',type:"css",charset:'utf-8',rely:null});
 	 TY.module.add("HW.pop.template.list",{path:"/js/template/list.js",type:"js",charset:'utf-8',rely:null});
 	 TY.module.add("HW.pop.template",{path:'/global/ty/ui/TY.ui.pop.js',type:"js",charset:'utf-8',rely:['HW.template.css']});
	 
 	 TY.module.add("HW.sochange",{path:'/js/sochange.js',type:"js",charset:'utf-8',rely:null});
 	 TY.module.add("HW.message",{path:'/js/plugins/sendMessage.js',type:"js",charset:'utf-8',rely:['HW.twitterpost.css','TY.util.textChange']});
 	 TY.module.add("HW.pageTool",{path:'/global/ty/view/TY.view.page.js',type:"js",charset:'utf-8',rely:null});
 	 TY.module.add("HW.friend",{path:'/js/plugins/TY.ui.friend.js',type:"js",charset:'utf-8',rely:['TY.util.cursorPoint',"TY.ui.friend-css"]});
 	 
 	 TY.loader("TY.ui.tips");
 	 TY.loader("HW.pop");
 })();
 
 /***
  * follow 
  */
(function($){
	 var ah=[],ischecked=true,tips,groupSort=['2','8','4','16','1'];
	 ah.push('<div class="groupbody">');
	 for (var i=0,len=groupSort.length;i<len;i++) {
			 ah.push('<label><input name="group" type="radio" value="'+groupSort[i]+'" '+(ischecked?'checked="checked"':"")+'/>'+HW_GroupMap[groupSort[i]]+'</label>');
			 ischecked=false;
	 }
	 ah.push('</div>');
	//add follow
	function addFollowAction(el){
		 if (el&&el.attr("_userid")) {
		 var value=$(':radio[name=group]:checked').val(); 
			tips=new TY.ui.tips({msg:HW_LanguageUtil['loading']['load'],position:'midCenter','type':'loading','autoHide':true});
			$.ajax({
				url:'/api/tw?method=weibo.following.insert',
				data:{
					"params.userId":el.attr("_userid"),
					'params.groupId':value
				},
				cache:false,
				type:'get',
				dataType:'json',
				success:function(json){
					if (+json.success===1) {
						if(HW.isSelf()){
							var num=$('.friends .following .red').text();
							$('.friends .following .red').text(+num+1);
						}
						if (HW.friendPlugin) {
							HW.friendPlugin.bindData();
						}
						tips.remove();
						HW.myFollow.push(+el.attr("_userid"));
						if ($('#'+el.attr("_userid")+' .m_follow').size()<1) {
							$('#'+el.attr("_userid")+' .user-name').after('<span class="m_follow"></span>');
						}
						el.removeClass('follow').addClass('follow_cancel').html("- "+HW_LanguageUtil.button.cancel);
					}else {
						tips=new TY.ui.tips({msg:HW_CodeTips[json['code']],position:'midCenter','type':'warn','time':2500});
					}
				},
				failure:function(){
					TY.util.console('add follow error');
				}
			});
		}
	 };
	 //cancel follow
	 function cancelFollowAction(val,el){
		 if (val&&el) {
			 tips=new TY.ui.tips({msg:HW_LanguageUtil['loading']['load'],position:'midCenter','type':'loading','autoHide':true});
			 var url='/api/tw?method=weibo.following.delete',isFollower=/follower/gi.test(location.href);
//			 if(isFollower){
//			 	url='/api/tw?method=weibo.follower.delete';
//			 }
			$.ajax({
				url:url,
				data:{
					"params.userId":val
				},
				cache:false,
				type:'get',
				dataType:"json",
				success:function(json){
					if (+json.success===1) {
						if(HW.isSelf()){
							var num=$('.friends .following .red').text();
	//						if(!isFollower){
								$('.friends .following .red').text(+num-1);
	//						}
	//						else{
	//							num=$('.friends .followers .red').text();
	//							$('.friends .followers .red').text(+num-1);
	//						}
						}
						if (HW.friendPlugin) {
							HW.friendPlugin.bindData();
						}
						tips.remove();
						HW.myFollow.remove(+el.attr("_userid"));
						$('#'+el.attr("_userid")+" .m_follow").remove();

						$("#"+el.attr("_userid")).slideUp(200,function  () {
							$(this).remove();
						});

						el.removeClass('follow_cancel').addClass("follow").html("+ "+HW_LanguageUtil.button.follow);
					}else {
						tips=new TY.ui.tips({msg:HW_CodeTips[json['code']],position:'midCenter','type':'warn','time':2500});
					}
				},
				failure:function(){
					TY.util.console('cancel follow error');
				}
			});
		 }
	 };
	TY.loader('TY.util.livequery','HW.pop',function(){
  		$.ajax({
			url:'/api/tw?method=weibo.following.getAllUserId',
			dataType:'json',
			cache:false,
			success:function(json){
				if (+json.success===1) {
					HW.myFollow = json.data.user;
					$('.follow').livequery(function(){
						var button = $(this);
						if (typeof (button.data("events"))=="undefined") {
							button.click(function(e){
								e.preventDefault();
								if (!HW.isOnline()) {
									new TY.ui.tips({
										'type':'warn',
										'msg':HW_LanguageUtil.error.login,
										'position':'midCenter',
										'time':5000
									});
									return;
								}
								var _this=$(this),userid=$(this).attr('_userid');
								//cancel follow
								if(_this.hasClass("follow_cancel")){
									new TY.ui.pop({headTxt:HW_LanguageUtil.plugins['follow_cancel']['title'],body:HW_LanguageUtil.plugins['follow_cancel']['msg'],yesHandler:function(){
										cancelFollowAction(userid,_this);
									 }
									 ,yesTxt:HW_LanguageUtil.plugins['follow_cancel']['yes'],cancelTxt:HW_LanguageUtil.plugins['follow_cancel']['cancel'],type:'confirm'});
								}else{
									new TY.ui.pop({headTxt:HW_LanguageUtil.plugins['follow_add']['title'],body:ah.join(''),yesTxt:HW_LanguageUtil.plugins['follow_add']['btnTxt'],yesHandler:function(){
										addFollowAction(_this);
									}});
								}
								
							});
						}
						if (HW.myFollow.indexOf(+button.attr("_userid"))!=-1) {
							button.removeClass('follow').addClass('follow_cancel').html("- "+HW_LanguageUtil.button.cancel);
						}
					});
				}else {
					$('.follow').livequery(function(){
						var button = $(this);
						if (typeof (button.data("events"))=="undefined") {
							button.click(function(e){
								if (!HW.isOnline()) {
									new TY.ui.tips({
										'type':'warn',
										'msg':HW_LanguageUtil.error.login,
										'position':'midCenter',
										'time':5000
									});
									return;
								}
							});
						}
					});
					TY.util.console('get allfollow errror');
				}
			},
			failure:function(){
				TY.util.console('request allfollow errror');
			}
		});
	});
})(jQuery);

 
 
/***
 * load followPop_add.js
 */

(function($){	
	window.topNavMsg = {
		dateStr : 1,
		UpdateInterval : 1000 * 60,
		msgCookieName : "hw_msg",
		getMsgData : function(){
			var cookieObj = eval(HW.getCookie(topNavMsg.msgCookieName));

			if(cookieObj && parseInt((new Date()).getTime()) < (cookieObj[0].timestr + this.UpdateInterval) && cookieObj[0].userId == HW.getUserId()){this.insertData(cookieObj[0]);}
			else {
				this.upMsgData();
				}
		},
		upMsgData : function(){
			var varName = "msgObj";
			$.getScript(
				iceURL + "?" + $.param({
					"var" : varName,
					"method" : "message.msgCount.select"
				}),
				function(){
					var msgObj = window[varName];
			
					if(msgObj && msgObj.success && msgObj.data){
						var _msgObj = {
							total : typeof msgObj.data['total'] == "undefined" ? 0 : msgObj.data['total'],
							fanCount : typeof msgObj.data['fanCount'] == "undefined" ? 0 : msgObj.data['fanCount'],
							replyCount : typeof msgObj.data['replyCount'] == "undefined" ? 0 : msgObj.data['replyCount'],
							atmeCount : typeof msgObj.data['atmeCount'] == "undefined" ? 0 : msgObj.data['atmeCount'],
							msgCount : typeof msgObj.data['msgCount'] == "undefined" ? 0 : msgObj.data['msgCount'],
							userId : HW.getUserId(),
							timestr : (new Date()).getTime()
							
						}
						topNavMsg.insertData(_msgObj);
						topNavMsg.saveMsgCookie(_msgObj);
					}
				}
			);
		},
		insertData:function(msgobj){
			if (typeof msgobj == "undefined"){return false;}
			else{
				var total = typeof msgobj['total'] == "undefined" ? 0 : msgobj['total'];  //总数	
				
				if (parseInt(total) > 0){
					$("#nav_msg #msg_Follow strong").html(msgobj['fanCount']);
					$("#nav_msg #msg_Reply strong").html(msgobj['replyCount']);
					$("#nav_msg #msg_Share strong").html(msgobj['atmeCount']);
					$("#nav_msg #msg_Msg strong").html(msgobj['msgCount']);
					
                    $("#nav_msg .float-down-view").show();
				}
				else $("#nav_msg .float-down-view").hide();
			}
			setTimeout(topNavMsg.upMsgData,topNavMsg.UpdateInterval);
		},
		saveMsgCookie:function(msgObj){
			var cookieStr = '[{'+
							 '"total":'+msgObj['total']+
							 ',"fanCount":'+msgObj['fanCount']+
							 ',"replyCount":'+msgObj['replyCount']+
							 ',"atmeCount":'+msgObj['atmeCount']+
							 ',"msgCount":'+msgObj['msgCount']+
							 ',"userId":' + msgObj['userId'] + 
							 ',"timestr":' + msgObj['timestr'] + 
							 '}]';
			HW.setCookie(topNavMsg.msgCookieName,cookieStr,{expires:1,path:"/",domain:'.nublogs.com',secure:false});
		},
		deleteMsgData:function(options){
			var settings = {
				itemName	: "",
				iceName		: "",
				o_trigger	: ""
			};
			
			var set = $.extend({}, settings, options || {});
			
			if (jQuery(set.o_trigger).size() == 0) return false;
			
			var cookieObj = eval(HW.getCookie(topNavMsg.msgCookieName));
			var msgObj;

			if(cookieObj) msgObj = cookieObj[0];
			else return false;
			
			switch (set.itemName) {
				case "fan" :
					set.itemName = "fanCount";
					set.iceName = "message.msgCount.resetFan";
					break;
				case "reply" :
					set.itemName = "replyCount";
					set.iceName = "message.msgCount.resetReply";
					break;
				case "atme" :
					set.itemName = "atmeCount";
					set.iceName = "message.msgCount.resetAtme";
					break;
				case "msg" :
					set.itemName = "msgCount";
					set.iceName = "message.msgCount.resetMsgCount";
					break;
				default:
					set.itemName = null;
					set.iceName = null;
			}
			
			if (set.itemName && set.iceName){
				msgObj[set.itemName] = 0;	
				msgObj['total'] = msgObj['fanCount'] + msgObj['replyCount'] + msgObj['atmeCount'] + msgObj['msgCount'];
				
				this.saveMsgCookie(msgObj);
				this.insertData(msgObj);
				
				$.getScript(
					iceURL + "?" + $.param({
						"var" : "reset",
						"method" : set.iceName
					}),
					function(){}
				);
			}
		},
		init:function(){
			if (HW.getUserId() && $(".main-nav #nav_msg").size() > 0) {
				this.getMsgData();
				
				$("#nav_msg #msg_Follow").live("click",function(){
					topNavMsg.deleteMsgData({o_trigger:this,itemName:"fan"});
				});
				$("#nav_msg #msg_Reply").live("click",function(){
					topNavMsg.deleteMsgData({o_trigger:this,itemName:"reply"});
				});
				$("#nav_msg #msg_Share").live("click",function(){
					topNavMsg.deleteMsgData({o_trigger:this,itemName:"atme"});
				});
				$("#nav_msg #msg_Msg").live("click",function(){
					topNavMsg.deleteMsgData({o_trigger:this,itemName:"msg"});
				});
			}
		}
	}
})(jQuery);
 
jQuery(document).ready(function($){
	topNavMsg.init();
	if ($("#basicForm #nickname")) {
		$("#basicForm #nickname").data('nickname',$("#basicForm #nickname").val());
	}
	//select all of  friends
	 jQuery("#check_all").click(function(){
		 if(jQuery(this).attr("checked")=="checked"){
			 var a=jQuery(this).attr("checked");
			 jQuery(".fans").attr("checked",a);
	     }
		 else {jQuery(".fans").removeAttr("checked");}
	 });
	 //the event of the left column of account
	 jQuery(".blockLeft .list1").hover(function(){
		 	jQuery(".blockLeft .list2").removeClass("hover");
			jQuery(".blockLeft .list3").hide();
			jQuery(this).addClass("hover");
			jQuery(this).find("a").css("border-width","0px");
			jQuery(".blockLeft .list2").find("a").css("border-width","1px");
			jQuery(".mb").removeClass("on");
			jQuery(this).css("height","31px");
		}).mouseleave(function(){
			jQuery(this).removeClass("hover");
			jQuery(this).find("a").css("border-width","1px");
	});
	 jQuery(".blockLeft .list2").hover(function(){
			jQuery(this).addClass("hover");
			jQuery(this).css("height","auto");
			jQuery(this).find("a").css("border-width","0px");
			jQuery(".mb").addClass("on");
			jQuery(".blockLeft .list3").show();
	 });
	//the event of t/index.html of banner
	jQuery(".t_list_ad .close").bind("click",function(){
		jQuery(this).closest(".t_list_ad").remove();
	});
	
	//the event of group of follow
	jQuery(".group").bind("mouseenter",function(){
		jQuery(this).addClass("group-on");
	}).bind("mouseleave",function(){
		jQuery(this).removeClass("group-on");
	});
	
	//the event of group of follow
	jQuery(".main-nav .float-parent-dom").bind("mouseenter",function(){
		jQuery(this).find(".float-down-view").show();
	}).bind("mouseleave",function(){
		jQuery(this).find(".float-down-view").hide();
	});
	
   // the verification of the interest Tags  
   jQuery("#profile_info_form").find("#submit_btn").click(function(){
	   var textCon=jQuery("#interest").val().replace(/，/g,',').split(',');
	   for(var i=0;i<textCon.length;i++)
	   		{
				if(textCon[i].length>32){
					jQuery(".acctTips1").show();
					jQuery(".acctTips1").text(HW_LanguageUtil.account['tag']);
					return false;
				}
			};
		if(11<=textCon.length){
			jQuery(".acctTips1").show();
			jQuery(".acctTips1").text(HW_LanguageUtil.account['tag1']);
			return false;
		};
   });
   jQuery("#interest").focus(function(){jQuery(".acctTips1").html("").hide();});
    // verification of nickname	    Basic infomation
   jQuery("#basicForm #nickname").blur(function(){
  	   var nicknameUrl="http://nublogs.com/useraction/checkNickName.do?nickname="+encodeURIComponent(jQuery("#nickname").val()),oldnickname=$(this).data('nickname');
	   if (oldnickname) {
		   if (oldnickname==this.value) {
			   $('#nicknameError').parent().hide();
			   $('#nicknameError').remove();
			   jQuery("#basicForm  .submit-btn").removeAttr("disabled");
			   return;
		   }
	   }
	   var len=jQuery('#nickname').siblings('.validateError:visible').length;
	   if(jQuery("#nickname").val()!=""&&len==0){
		   jQuery.ajax({
			url:nicknameUrl,
			type:'get',
			dataType:'json',
			success:function(json){
					if(json.success==0&&jQuery("#nickname").siblings("#nicknameError").length==0){
						jQuery('#nicknameError').remove();
						jQuery(".acctTips1").show();
						var span='<span id="nicknameError">'+HW_CodeTips[json.code]+'</span>';
						jQuery(".acctTips1").append(span);
						jQuery("#basicForm .submit-btn").attr("disabled",true);
					};
					if(json.success==1){
						jQuery('#nicknameError').remove();
						jQuery(".acctTips1").hide();
					    jQuery("#basicForm  .submit-btn").removeAttr("disabled");
					}	
			},
			failure:function(f){
				alert(HW_CodeTips[f.code]);
			}
		 });
	 }
   });
   // error404 tips
   jQuery("#error_404 h1").text(HW_CodeTips['user.available.activation']);	
   // Forgot your password , resent email
   var tag="";
   jQuery('#vcode_form p:first').find("a").bind("click",function(){
	   //debugger
		var reurl='http://nublogs.com'+jQuery(this).attr("href");
		if(!jQuery(this).attr("tag")||jQuery(this).attr("tag")!="1"){
			jQuery.ajax({
				url: reurl,
				type:'get',
			    dataType:'json',
				success:function(json){
				},
				failure:function(f){
				  alert(HW_CodeTips[f.code]);
			    }
			});
		};
		jQuery(this).attr("tag","1").css("color","#333");
		tag=1;
		return false;
   });
});

/**validate config**/
jQuery(document).ready(function($){
	$.Placeholder.init({color:'#A9A9A9'});
	$.validator.addMethod('nickname',function(value, element){
		var reg=/[\wÜüÁáÉéÍíÓóÚúÑñ-]$/;
		return this.optional(element) ||reg.test(value);
	}, HW_LanguageUtil.account['nickname']);
	$.validator.addMethod('password',function(value, element){
		var reg=/^[\S]{6,32}$/;
		return this.optional(element) ||reg.test(value);
	}, HW_LanguageUtil.account['password']);
	$.validator.addMethod('domain',function(value, element){
		var reg=/^[\w\d]{4,16}$/;
		return this.optional(element) ||reg.test(value);
	}, HW_LanguageUtil.account['domain']);
	$.validator.addMethod('HW_email',function(value, element){
		var reg=/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+([\w-]{2,4})$/;
		return this.optional(element) ||reg.test(value);
	}, HW_LanguageUtil.account['email']);
	
	
	$('#login').validate({
		errorClass:'validateError',
		errorElement:'span',
		errorLabelContainer: $('.error'),
		rules:{
			"loginName":{
				required:true
			},
			"password":{
				required:true
			}
		},
		messages:{
			    'loginName':{
					required: HW_LanguageUtil.login['loginName']
				},
				'password':{
					required:HW_LanguageUtil.login['password1']
				}
			}	
	});
	//common error message
	if (typeof (errorMessage)!='undefined') {
		if($('#errorPrompt').size()>0){
			$('#errorPrompt').html(HW_CodeTips[errorMessage['code']]).show();
		}else{
			if(typeof(TY.ui.tips)!='undefined'){
				new TY.ui.tips({
					'type':'warn',
					'msg':HW_CodeTips[errorMessage['code']],
					'position':'midCenter',
					'time':5000
				});	
			}else{
				TY.loader('TY.ui.tips',function(){
					new TY.ui.tips({
					'type':'warn',
					'msg':HW_CodeTips[errorMessage['code']],
					'position':'midCenter',
					'time':5000
				});	
				});
			}
			
		}
	}else{
		$('#errorPrompt').hide();
	}
});


function nav_search_check(){
	var input_q = jQuery("#nav_search #s_q");
	if (input_q.val() == "infomation,Microblog,People") {
		input_q.val('');
		//input_q.val('').focus();
		//return false;
	}
}

function flashChecker(){
	var hasFlash=0;         //是否安装了flash
	var flashVersion=0; //flash版本
	var isIE=/*@cc_on!@*/0;      //是否IE浏览器
	var noFlashTip="";      //无安装flash时提示语
	
	if(isIE){
		var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
		if(swf){
			hasFlash=1;
			VSwf=swf.GetVariable("$version");
			flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]); 
		}
	}
	else{
		if (navigator.plugins && navigator.plugins.length > 0){
			var swf=navigator.plugins["Shockwave Flash"];
			if (swf){
				hasFlash=1;
				var words = swf.description.split(" ");
				for (var i = 0; i < words.length; ++i){
					if (isNaN(parseInt(words[i]))) continue;
					flashVersion = parseInt(words[i]);
				}
			}
		}
	}
	
	noFlashTip = HW_LanguageUtil.plugins.flash["NoFlash"];
	
	return {has:hasFlash,version:flashVersion,tip:noFlashTip};
}
/*
var fls=flashChecker();
if(fls.has) {
	.....
}
else {
	$("....").html(fls.tip);
}
*/
/*emoticon language config*/
(function($){
	HW_LanguageUtil.plugins.emotion={};
	var locale=HW.getCookie('locale');
	if(locale){
		if (locale.toLowerCase()=='en_us') {
			HW_LanguageUtil.plugins.emotion={
				'name':HW_Emotion_config('en')['emotion'],
				'pic':HW_Emotion_config('en')['pic']
			};
		}else{
			HW_LanguageUtil.plugins.emotion={
				'name':HW_Emotion_config('es')['emotion'],
				'pic':HW_Emotion_config('es')['pic']
			};
		}
	}
})(jQuery);
