$(function(){
//	CodeTips();
//	SynUserName();
//	valiDateLogin();
//	$(".apple_overlay a[rel^='#'],.ld-sign-contant a[rel^='#'],#js_sign_form a[rel^='#']").overlay({
//		mask: '#000',
//		effect: 'apple',
//		onLoad:function(){
//			$("#exposeMask").fadeIn("fast");
//			var rel = this.getTrigger().attr("rel");
//			//弹出窗口后光标移到user name输入框上
//			switch(rel){
////				case "#overlay":
////				$(".ld-register input[name='username']")[0].select();
////				break;
//				case "#js_login":
//				$(".ld-login input[name='username']")[0].select();
//				break;
//				case "#js_findpass":
//				$(".ld-findpass input[name='username']")[0].select();
//				break;
//			}			
//		},
//		onBeforeLoad:function(){
//			//弹出窗口之前先清除上次的error信息
//			$("label.validate_error").remove();
//		}
//		
//	});
	InitShowSignForm();
	
//	$("#js_reg").click(function(){
//		$username = $("#js_sign_form input[name='username']");
//		$(this).ScrollTo($username);
//		$username.focus();
//		return false;
//	})
	
//	$("#scroll").scrollable({ items: '#tools',circular: true}).navigator().autoscroll({autoplay: true,interval:30000});
//	var rss = new LandingPageRss();
//	rss.displayLatestEvents( 'article', 10 );
	
//	var tagCloud = new TagCloudRest();
//	tagCloud.displayTagCloud({required:{rankBy:'mean'},optional:{end:50}});
	
	
	var tagCloud = new TagCloudFlex($("#tagCloud"));
	var flashVars = {};
	flashVars.tags = tagCloud.getAssetName();
	flashVars.weights = tagCloud.getAssetSize();
	flashVars.pageUrls = tagCloud.getAssetUrl();
	swfobject.embedSWF(elggHost + "vendors/kalengo/swfs/tagcloud.swf", "tagCloud", "205", "200", "9.0.0", "expressInstall.swf",
		flashVars, {wmode:"transparent"});
		
});//end ready


/***
 * 初始化时显示注册或登录框
 */
function InitShowSignForm(){
	var action = getUrlParam("action");
	switch(action){
		case "signin":
		$("a[rel='#js_login']",".ld-sign-contant").eq(0).trigger("click");
		break;
	}
}

//////////////////////////////////get url param//////////////
//example getUrlParam('id') or getUrlParam('id','#')
function getUrlParam(){
	var url=top.window.location.href;
	var u,params,StrBack='';
	if(arguments[arguments.length-1]=="#")
	   u=url.split("#");
	else
	   u=url.split("?");
	if (u.length==1) params='';
	else params=u[1];
	
	if(params!=''){
	   gg=params.split("&");
	   var MaxI=gg.length;
	   str = arguments[0]+"=";
	   for(i=0;i<MaxI;i++){
	      if(gg[i].indexOf(str)==0) {
	        StrBack=gg[i].replace(str,"");
	        break;
	      }
	   }
	}
	return StrBack;
}

//function valiDateLogin(){
//	$("#js_login_form").validate({
//		rules: {
//			username: {
//				required: true,
//				minlength: 4
////				maxlength: 10
//			},
//			password: {
//				required: true,
//				minlength: 6
//			}
//		},
//		messages: {
//			username: {
//				required: "Please enter a login name",
//				minlength: "Your login name must consist of at least 4 characters"
////				maxlength: "Your login name must consist of at most 10 characters"
//			},
//			password: {
//				required: "Please provide a password",
//				minlength: "Your password must be at least 6 characters long"
//			}
//		},
//		errorClass: "validate_error"
//	});
//	
//	
//	
//	$("#js_sign_form").validate({
//		rules: {
//			name: {
//				required: true,
//				minlength: 4
////				maxlength: 10
//			},
//			username: {
//				required: true,
//				minlength: 4,
//				maxlength: 10
//			},
//			password: {
//				required: true,
//				minlength: 6
//			},
//			password2: {
//				required: true,
//				minlength: 6,
//				equalTo: "#password"
//			},
//			email: {
//				required: true,
//				email: true
//			},
////			captcha_input: "required",
//			serivice_agreement: "required"
//		},
//		messages: {
//			name: {
//				required: "Please enter a login name",
//				minlength: "Your username must consist of at least 4 characters"
////				maxlength: "Your login name must consist of at most 10 characters"
//			},
//			username: {
//				required: "Please enter a login name",
//				minlength: "Your username must consist of at least 4 characters"
////				maxlength: "Your login name must consist of at most 10 characters"
//			},
//			password: {
//				required: "Please provide a password",
//				minlength: "Your password must be at least 6 characters long"
//			},
//			password2: {
//				required: "Please provide a password",
//				minlength: "Your password must be at least 6 characters long",
//				equalTo: "Please enter the same password as above"
//			},
//			email: "Please enter a valid email address",
////			captcha_input: "Correct captcha is required",
//			serivice_agreement: "Please accept our Service Agreement"
//		},
////		errorPlacement: function(error, element){
////			error.appendTo(element.closest("dd"));
////		},
//		errorClass: "validate_error"
//	});
//	
//	$("#js_lost_form").validate({
//		rules: {
//			username: {
//				required: true,
//				minlength: 4
//			},
//			captcha_input: "required"
//		},
//		messages: {
//			username: {
//				required: "Please enter a login name or email",
//				minlength: "Your username must consist of at least 2 characters",
//				maxlength: "Your username must consist of at most 10 characters"
//			},
//			captcha_input: "Correct captcha is required"
//		},
//		errorClass: "validate_error"
//	});
//}
//
///***
// * 同行user name 和login name
// */
//function SynUserName(){
//	$("input[name='username']","#js_sign_form").blur(function(){
//		$("input[name='name']","#js_sign_form").val($(this).val());
//	})
//	$("input[name='password']","#js_sign_form").blur(function(){
//		$("input[name='password2']","#js_sign_form").val($(this).val());
//	})
//}

/***
 * rss类
 */
var LandingPageRss = function(){
	var that = this;
	var rest = new restWrapper();
	var $container = $("#js-ld-content");
	var getLatestEventsSucc = function( events ){	
		var eventType = events['metaData']['eventType']['name'];	
		var eventsContent = "";
		try{
			for( var iCount in events['events'] ){
				var event = events['events'][iCount];	
				eventsContent +=
					'<div class="ld-buzz-one">'+
			        '<h4><a target="_blank" href="'+ elggHost+'apps/rss?event_id='+event["id"] +'">'+ event[eventType]["title"] +'</a></h4>'+
			        '<div class="ld-copyright gray_text"><span>'+ event["time"] +'</span><strong>'+ event[eventType]["author"] +'</strong></div>'+
			        '<blockquote class="rss_content">'+  event[eventType]['summary'].substring(0,210) +'...</blockquote>'+
			      	'</div><!--.ld-buzz-one -->';
			}
		} catch(e){
			var errorNotice = new KlgEmailNoticeClass();
			errorNotice.sendJsErrorEmail(JSON.stringify(e),"Latest Buzz Rss module API BUG.Please Contact Ray or Hugo.");
		}
		
		$container.html( eventsContent );
		rssEffect();
	}
/*	
	//滚动效果
	var rssEffect = function(){
		
		//新闻向下滚动
		this.articleScroll = function(){
			$container.children(".ld-buzz-one:last").clone().hide().prependTo($container);
			$container.children(".ld-buzz-one:first").slideDown("normal",function(){
				$container.children(".ld-buzz-one:last").remove();
			})
		};
		
		var oTime = setInterval("articleScroll()",5000);
		  
		$(".ld-buzz-one",that.$container).livequery(function(){ 
		    $(this) 
		        .hover(function() {
					clearInterval(oTime);
		            $(this).addClass('ld-buzz-one-hover'); 
		        }, function() { 
					oTime = setInterval("articleScroll()",5000);
		            $(this).removeClass('ld-buzz-one-hover');
		        }); 
		}, function(){
			$(this).unbind('mouseover').unbind('mouseout');
		});

		
	}
*/	
	var getLatestEventsError = function(e){			
		$container.closest(".ld-buzz-container").hide();
		var errorNotice = new KlgEmailNoticeClass();
		errorNotice.sendJsErrorEmail(JSON.stringify(e.getProfessionalMsg()));
	}
	
	return{
		displayLatestEvents: function(eventType, count){
			var url = "events/" + eventType + "/latest?count=" + count;
			var settings = {
				service: url,
				success: function(data){
					getLatestEventsSucc(data);
				},
				exception: getLatestEventsError,
				complete:function(){
					$(".show_load_tips").hide();
				}
			}
			rest.ajaxRestGet(settings);
		}
	}	
	
}

/**
 * TagCloud 
 * Data from rest
 */
var TagCloudRest = function(){
	var rest = new restWrapper();
	var assetName = new Array();
	var assetCompany = new Array();
	var assetSize = new Array();
	var assetUrl = new Array();
	
	var majorIndex = {"^GSPC": "S@P500", "^DJI":"DOW", "^IXIC" : "Nasdaq"};
	
	var getRankSucc = function(data){
		 for(var index in data){
		 	var ticker = data[index].ticker;
			//transform 3 major index to other name
			if(typeof(majorIndex[ticker]) != 'undefined'){
				ticker = majorIndex[ticker];
			}
		 	assetName.push(ticker);
			assetSize.push(data[index].mean);
			assetCompany.push(data[index].assetName)
			assetUrl.push(elggHost + "apps/asset_beta/" + ticker);
		 }
		 
		 assetName.push("S@P500");
		 assetSize.push(1);
		 assetCompany.push("S@P500");
		 assetUrl.push(elggHost + "apps/asset_beta/" + "^GSPC");

		 assetName.push("DOW");
		 assetSize.push(1);
		 assetCompany.push("Dow Jones Industrials Index");
		 assetUrl.push(elggHost + "apps/asset_beta/" + "^DJI");
		 
		 assetName.push("Nasdaq");
		 assetSize.push(1);
		 assetCompany.push("Nasdaq Composite Index");
		 assetUrl.push(elggHost + "apps/asset_beta/" + "^IXIC");
		 
		 var flashVars = {};
		 flashVars.tags = assetName.join(",");
		 flashVars.weights = assetSize.join(",");
		 flashVars.pageUrls = assetUrl.join(",");
		 swfobject.embedSWF(elggHost + "vendors/kalengo/swfs/tagcloud.swf", "tagCloud", "205", "200", "9.0.0", "expressInstall.swf",
			flashVars, {wmode:"transparent"});
	}
	
	return {
		displayTagCloud: function(params){
			var url = "rank/assets/"+params.required.rankBy+"/";	
			url += params.optional && params.optional.start ? params.optional.start : '1';
			url += '-';
			url += params.optional && params.optional.end ? params.optional.end : '20';
			//url += '?';
			//url += params.optional && params.optional.desc === false ? '&desc='+params.optional.desc : '';
			
			var settings = {
				service: url,
				success: getRankSucc
			}
			rest.ajaxRestGet(settings);
		}
	}
}

/***
 * 标签云Class
 * @param {Object} $target
 */
var TagCloudFlex = function($target){
	var $assetList = $target.find("a");
	var assetName = new Array();
	var assetCompany = new Array();
	var assetSize = new Array();
	var assetUrl = new Array();

	$assetList.each(function(){
		var $this = $(this);
		var ticker = $this.text();
		//handle s&p500
		assetName.push(ticker.replace("&", "@"));
		assetCompany.push($this.attr("title"));
//		assetSize.push(parseInt($this.css("font-size"),100));
		assetSize.push( $this.attr("weight") );
		assetUrl.push($this.attr("href"));
	})
	
	return {
		getAssetName: function(){
			return assetName.join(",");
		},
		getAssetCompany:function(){
			return assetCompany.join(",");
		},
		getAssetSize:function(){
			return assetSize.join(",");
		},
		getAssetUrl:function(){
			return assetUrl.join(",");
		}
	}
	
}

/***
 * leaving first feedback
 */
$(function(){
	var getFirstFeedback = function(){
		return klgGetCookie("first_feedback");
	}
	if (!getFirstFeedback()) {
		//feedback url
		var FEEDBACK_URL = elggHost + "apps/first_feedback";
		
		var popFeedback = new PopUpAdClass();
		//点击页面弹窗
		$(document).click(function(e){
			var el = $(e.target)
			if (!el.is("a") && !el.is("input")) {
				popFeedback.open(FEEDBACK_URL,"","menubar=no,location=no,status=no,toolbar=no,width=1020, height=620, scrollbars=no, resizable=yes");
//				PopUpAdClass.focus(window);
				$(document).unbind("click");
			}
		});
	}
})

