﻿var user = {
	// UserID 관련
	bLogin:false,
	bAdmin:false,
	UserID:undefined,
	UserName:undefined,
	info:undefined,
	reset:function(){
		this.bLogin=false;
		this.bAdmin=false;
		this.UserID=undefined;
		this.info=undefined;
	},
	initWithParams:function(pBLogin,pBAdmin,pUserID,pUserName, callBack){
		this.bLogin=pBLogin;
		this.bAdmin=pBAdmin;
		this.UserID=pUserID;
		this.UserName=pUserName;
		if ( typeof(callBack)=="function" ) callBack();
	},	
	init:function(callBack){
		if ( this.bLogin == false )	this.checkLogin(callBack);
	},	
	checkLogin:function(callBack){
		var input = {"op":"checklogin"};
		$.ajax({
			type: "POST",
			url: "/api/user/user.asp",
			cache: false,
			data: input,
			dataType: "json",
			success: function(data, textStatus, jqXHR){
				// data
				if ( data.USERID != "" ) {
					user.info = data;
					user.UserID=data.USERID;
					user.bLogin = true;
					user.bAdmin = (data.BADMIN==1);
					user.UserName = data.NAME;
				} else {
					user.reset();
				};
				if ( typeof(callBack)=="function" ) callBack(); // callback
			},
			error: function(jqXHR, textStatus, errorThrown){
				alert("Error occured while submit.\nErr11");
				user.reset();
				if ( typeof(callBack)=="function" ) callBack(); // callback				
				//alert(textStatus);
			}
		});	
	},
	checkAdmin:function(num){ 
		result = false;
		if ( typeof(this.info) !== "undefined" ) {
			for ( i=0; i<this.info.BIDLIST.length; i++){
				if ( this.info.BIDLIST[i]==num ) 
					result = true;
			};
		};
		return result;
	},
	doLogin:function(){
	
		// param
		email = $("#loginWrapper input[name='fEmail']").val();
		password = $("#loginWrapper input[name='fPassword']").val();
		//alert("email="+email+"\npassword="+password);
		
		if ( email=="" || email.length<4 ) {$("#loginWrapper input[name='fEmail']").focus(); alert("Please enter an validate email"); return false;};
		if ( !this.validateEmail(email) ) {$("#loginWrapper input[name='fEmail']").focus(); alert("Please enter an validate email"); return false;};
		if ( password=="" ) {$("#loginWrapper input[name='fPassword']").focus(); alert("Please enter a password"); return false;};

		var input = {"op":"doLogin", "userid":email, "password":password };
		$.ajax({
			type: "POST",
			url: "/api/user/user.asp",
			cache: false,
			data: input,
			dataType: "json",
			success: function(data, textStatus, jqXHR){
				if ( data.USERID != undefined && data.USERID != "") {
					document.location.href=document.location.href;
				} else {
					alert('Login failed. Please check your email and password.\nIf you didn\'t register yet, please register first.');
					user.reset();
					user.viewUserHeader();
					closeModalPopup("#loginWrapper");					
				};
			},
			error: function(jqXHR, textStatus, errorThrown){
				alert("Error occured while submit.\nErr12");
				alert(textStatus);
				//user.reset();
				//user.viewUserHeader();				
				closeModalPopup("#loginWrapper");
			}
		});	
		
	},
	doLogout:function(){
		var input = {"op":"dologout"};
		$.ajax({
			type: "POST",
			url: "/api/user/user.asp",
			cache: false,
			data: input,
			dataType: "json",
			success: function(data, textStatus, jqXHR){
				document.location.href=document.location.href;
			},
			error: function(jqXHR, textStatus, errorThrown){
				alert("Error occured while submit.\nErr13");
			}
		});	
	},
	viewUserHeader:function(callBack){
		// UI
		if ( $("#userheader").length>0 ) {
			$("#userheader").html("");
		} else {
			$("body").append("<div id='userheader'></div>");
		};
		
		var row="";

		// check
		if ( this.bLogin == true ) {
			row = row + "<div class='btn btnLogout'>Sign out</div>";
			row = row + "<div class='msg'>Welcome to Cornerstone, <a href='/user/mypage.asp' class='toMyPage'>"+ this.UserName +"</a>!</div>";					
		} else {
			row = row + "<div class='btn btnSignin'>Sign in</div>";		
			row = row + "<div class=\"btn btnRegister\"  onclick=\"window.open('/api/user/fbRegister.asp', 'registerWindow','width=550,height=440,location=no,menubar=no,resizable=yes,scrollbars=yes,toolbar=no,status=no'); return false;\" >Register</div>";
		};
		row = row + "<div class='clear' ></div>";		
		$("#userheader").append(row);
		
		// callback
		if ( typeof(callBack)=="function" ) callBack();		
	},

	// Show
	showLogin:function(){
		// check
		if ( this.bLogin == true ) {
			alert("Please logout before sign in with other user id.");
			return false;
		};
		
		// UI
		if ( $("#loginWrapper").length>0 ) {
			$("#loginWrapper").html("");
		} else {
			$("body").append("<div id='loginWrapper' ></div>");		
		};

		var row="";
		row = row + "<div id='loginWrapper'>";
		row = row + "Sign In to Cornerstonetv.com";
		row = row + "<hr>";
		row = row + "<div class='leftWrapper'>";
		row = row + "Email Address : <br><input type='text' name='fEmail' maxlength='50' ><br>";
		row = row + "Password : <br><input type='password' name='fPassword'  maxlength='32' ><br>";
		row = row + "<input type='submit' name='submit' value='submit' class='mt10'>";
		row = row + "</div>";
		row = row + "<div class='rightWrapper'>";
		row = row + "Or you can sign in with Facebook ID. <br>";
		row = row + "<a href=\"#\" onclick=\"window.open('/api/user/fbLogin.asp', 'loginWindow','width=800,height=600,location=no,menubar=no,resizable=yes,scrollbars=yes,toolbar=no,status=no'); return false;\" ><img src='/static/images/api/user/btnLogin.png'></a><br>";
		row = row + "</div>";

		row = row + "<div class='clear'></div><br><br>";
		row = row + "<span class='toRegsiter' onclick='user.showRegister();'>Please register with Cornerstonetv.com before sign in.</span>";

		row = row + "</div>";		
		$("#loginWrapper").append(row);
		
		openModalPopup("#loginWrapper");
	},
	showRegister:function(){
		closeModalPopup('#loginWrapper');
		window.open('/api/user/fbRegister.asp', 'registerWindow','width=550,height=440,location=no,menubar=no,resizable=yes,scrollbars=yes,toolbar=no,status=no'); 
		return;	
	},
	
	validateEmail:function(elementValue){  
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
		return emailPattern.test(elementValue);  
	},

	cbFBLogin:function(){
		document.location.href=document.location.href;	//refresh
	}	
		
};

   
$(document).ready(function(){
	// user login check
	//user.checkLogin();

	// events(live)
	$("#loginWrapper input[type='submit']").live("click", function(){
		user.doLogin();
	});

	$("#userheader .btnSignin").live("click", function(){
		user.showLogin();
	});

	$("#userheader .btnLogout").live("click", function(){
		user.doLogout();
	});
	
});



