﻿/// <reference path="jquery/vsdoc.js" />
/// <reference path="lang/tw.js" />
var scroll_left = 0;//ScrollLeft
var scroll_top = 0;//ScrollTop
var doc = document.documentElement;//文檔對象
var iCaraQMenuVisible = true;
var PeopleMenuVisible = true;

var userAgent = navigator.userAgent.toLowerCase();
var Browser = {
    version: (userAgent.match(/.(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
    safari: /webkit/.test(userAgent),
    opera: /opera/.test(userAgent),
    msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
    mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
};


function Page_Load()
{
    var c = getQuerry("c");
    switch(c)
    {
        case "tologin":
            ShowLoginDialog();
            break;
    }
    //setInterval("$('#caraq_invite_link').toggleClass('InviteClass');", 500);
    
    __DealImg();//处理图片
    __Menu();//處理menu的展開／收縮
    
    __flexHeaderMenu();
    __skinSet();
    
    __showAgreeBeFriendBtn();
    __getRandomTask();
}

function ShowFriendList()
{
    var x = doc.clientWidth/2 + scroll_left - 150;
    var y = doc.clientHeight/2 +scroll_top - 200;
    $("div#MyFriendDlg").css("left",x);
    $("div#MyFriendDlg").css("top",y);
    $("div#MyFriendDlg").toggle();
    
    __ForbidBrowser(false,false);
    __ShowDialog("MyFriendDlg","MyFriendDlgTemp",100,150);   
    if($("div#MyFriendDlg div.body").html().length<10)
       $("div#MyFriendDlg div.body").html("<iframe src=\"/iframe/FriendList.aspx?p="+ToUser+"\" frameborder=\"0\" height=\"350\" width=\"100%\" scrolling=\"auto\"></iframe>");
}

function __ClientHeight(){
    var sh = screen.height ;
    var bh = document.body.clientHeight;
    return (sh>bh?sh:bh);
}

function __ClientWidth(){
    var sw = screen.width ;
    var bw = document.body.clientWidth;
    return (sw>bw?sw:bw);
}

function __ForbidBrowser(click2close,showselect,objID)
{
    if(!document.getElementById("BodyCloseDiv"))
    {
        $("<div id=BodyCloseDiv class=BodyClose style=\"left:0px;top:0px;height:"+(__ClientHeight())+"px;width:"+(__ClientWidth()-25)+"px;position:absolute;z-index:101;\"></div>").appendTo("body");
    }

    $("div#BodyCloseDiv").show();
    if(!showselect){
        $("select").hide();
        $("select#sel_login_type").show();
    }
    
    if(click2close){
        $("div#BodyCloseDiv").click(function(){
            $("#"+objID).hide();
            $("select").show();        
            $(this).hide();
        });
    }else{
        $("div#BodyCloseDiv").click(function(){$(this).show();});
    }
}

function __ShowDialog(objID,tempObjID,offsetLeft,offsetTop,callback,context)
{
    var x = doc.clientWidth/2 + scroll_left - offsetLeft;
    var y = doc.clientHeight/2 +scroll_top - offsetTop;
    if(!document.getElementById(objID))
    {
        $("<div id=\""+objID+"\" style=\"display: none;\">"+$("#"+tempObjID).html()+"</div>").appendTo("body");
        $("#"+tempObjID).remove();
    }
    $("#"+objID).css("left",x+"px");
    $("#"+objID).css("top",y+"px");
    $("#"+objID).css("position","absolute");
    $("#"+objID).css("z-index","1000");
    if(callback)
        callback(context);
    $("#"+objID).show();
}

function __ShowNormalDialog(objID,headText,bodyHtml,width,height,offsetLeft,offsetTop)
{
    var x = doc.clientWidth/2 + scroll_left - offsetLeft;
    var y = doc.clientHeight/2 +scroll_top - offsetTop;
    if(!document.getElementById(objID)) {
        var header = "<div class=\"header\"><div style=\"float: left\">"+headText+"</div><div class=\"closeImg\" onclick=\"__CloseDialog('"+objID+"');\"></div></div>";
        var body = "<div class=\"body\">"+bodyHtml+"</div>";
        $("<div id=\"" + objID + "\" style=\"display: none; width:" + width + "px;min-height:" + height + "px;_height:" + height + "px;\" class=NormalDialog>"+header+body+"</div>").appendTo("body");        
    }

    $("#"+objID).css("left",x+"px");
    $("#"+objID).css("top",y+"px");
    $("#"+objID).css("position","absolute");
    $("#"+objID).css("z-index","1000");
    $("#"+objID).show();
}

function __Alert(hText,bText,btnText,w,h)
{
    var objID="WebAlertDialog";
    var x = doc.clientWidth/2 + scroll_left - w/2;
    var y = doc.clientHeight/2 +scroll_top - h/2;
    
    __ForbidBrowser(true,false,objID);
    
    if(!document.getElementById(objID))
    {
        $("<div id=\""+objID+"\" style=\"display: none;width:"+w+"px;height:"+h+"px;\"><div class=header>"+hText+"</div><div class=text>"+bText+"</div><div class=close><input type=button value=\""+btnText+"\" onclick=\"__CloseDialog('"+objID+"');\"/></div></div>").appendTo("body");
    }
    
    $("#"+objID).css("left",x+"px");
    $("#"+objID).css("top",y+"px");
    $("#"+objID).css("position","absolute");
    $("#"+objID).css("z-index","1000");
    $("#"+objID).show();
}

function __Running(hText,bText,w,h){
    if(!hText)hText = CaraQLang.WaitForAMoment;
    if(!bText)bText = CaraQLang.WaitForAMoment;
    if(!w)w=300;
    if(!h)h=120;
    var objID="WebAlertDialog";
    var x = doc.clientWidth/2 + scroll_left - w/2;
    var y = doc.clientHeight/2 +scroll_top - h/2;
    
    __ForbidBrowser(false,false,objID);
    
    if(!document.getElementById(objID))
    {
        $("<div id=\""+objID+"\" style=\"display: none;width:"+w+"px;height:"+h+"px;\"><div class=header><div style='float:left'>"+hText+"</div><div class=closeImg onclick=\"__CloseDialog('"+objID+"');\"></div></div><div class=body><div class=runTip>"+bText+"</div></div></div>").appendTo("body");
    }
    
    $("#"+objID).css("left",x+"px");
    $("#"+objID).css("top",y+"px");
    $("#"+objID).css("position","absolute");
    $("#"+objID).css("z-index","1000");
    $("#"+objID).show();
}

function __CloseDialog(objID)
{
    if(document.getElementById("BodyCloseDiv"))
    {
        $("select").show();
        $("div#BodyCloseDiv").hide();
    }
    $("#"+objID).hide();
}

function __SelectAll(obj,str){
    //选择／不选所有复选框
    var val = false;
    if(obj.checked)
        val = true;
    else
        val = false;
    var i=0;
    while($get(str+"_"+i.toString())){
        $("#"+str+"_"+i.toString()).attr("checked", val);
        i++;
    }    
}
function ShowLoginDialog(){
//if($("div#LoginDialog").get(0).style.display == "none") return;
    //var evt = e || event;
    __ForbidBrowser(false,false,"LoginDialog");
    var x = doc.clientWidth/2 + scroll_left - 100;
    var y = doc.clientHeight/2 +scroll_top - 100;
    $("div#LoginDialog").css("left",x);
    $("div#LoginDialog").css("top",y);
    $("#LoginDialog").css("position","absolute");
    $("#LoginDialog").css("z-index","1000");
    $("div#LoginDialog").toggle();

    $("div#BodyCloseDiv").show();
    $("select").hide();
    $("#LoginDialog select.sel_login_type").each(function(i){$(this).show();});
}

function ShowDialog(DialogID,w,h,cssName){

    __ForbidBrowser(false,false,DialogID);
    
    var x = doc.clientWidth/2 + scroll_left - w/3;
    var y = doc.clientHeight/2 +scroll_top - h/3; 
    
    
    if(!document.getElementById(DialogID+"_temp"))
    {
        $("<div id="+DialogID+"_temp class="+cssName+" style=\"position: absolute; display:none;\"></div>").appendTo("body");
    }
    
    $("div#"+DialogID+"_temp").css("left",x);
    $("div#"+DialogID+"_temp").css("top",y);
    $("div#"+DialogID+"_temp").html($("div#"+DialogID).html());
    $("div#"+DialogID+"_temp").toggle();   
}

function ToggleMore(id)
{    
    $("span#"+id).toggle();       
}

$(document).ready(function(){

    $(window).load(Page_Load);
    
    $("input[type=text]").focus(function(){
        if($(this).attr("flag")=='noselect')
            return;
        this.select();
    }
    );
    
    $("textarea").focus(function(){
        if($(this).attr("flag")=='noselect')
            return;
      this.select();
    }
    );
    
    $(window).scroll(function(){
        scroll_left = doc.scrollLeft;
        scroll_top = doc.scrollTop;
        var x = doc.clientWidth/2 + scroll_left - 100;
        var y = doc.clientHeight/2 +scroll_top - 100;
        $("div#LoginDialog").css("left",x);
        $("div#LoginDialog").css("top",y);
        
        __skinSet();
    });
    
    $(window).resize(function(){
        var x = doc.clientWidth/2 + scroll_left - 100;
        var y = doc.clientHeight/2 +scroll_top - 100;
        $("div#LoginDialog").css("left",x);
        $("div#LoginDialog").css("top",y);
        
        __skinSet();
    });
}
);

function __Menu(){
    if(!iCaraQMenuVisible){
        try{
            ICaraQMenu_Flex();
        }catch(e){}
    }
}

function getQuerry(ref) //取获参数值
{
    var url = location.href;
    
    var flag = url.indexOf('?');
    if(flag==-1) 
        return "NULL";
    var str = url.substr(flag+1);
    if(str.indexOf('&')!=-1)
    {
        var arr = str.split('&');
        for(i in arr)
        {
            if(arr[i].split('=')[0]==ref)
                return arr[i].split('=')[1];
        }
        return "NULL";
    }
    else
    {
        if(str.split('=')[0]==ref)
            return str.split('=')[1];
        else
            return "NULL";
    }
}

function S()
{
    if($('input.SearchKeyClass').val()==''){$('input.SearchKeyClass').focus();return false;}
}

function OpenURL(url,e)
{
    var evt = e || event;
    window.open(url,"","height=280, width=300, top="+evt.clientY+", left="+evt.clientY+",toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no");
}

function CutMyImage(arg1,arg2,e)
{
    __ShowDialog("CutImage.aspx?v="+arg1+"&elem="+arg2,e);
}

function ToClip(txt) {
    txt = $("#"+txt).val();    
    if(window.clipboardData) {
       window.clipboardData.clearData();
       window.clipboardData.setData("Text", txt);
    } else if(navigator.userAgent.indexOf("Opera") != -1) {
        window.location = txt;
    } else if (window.netscape) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        } catch (e) {
            alert(CaraQLang.FirefoxNotAllowClip);
            return false;
        }
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip)
            return;
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        if (!trans)
            return;
        trans.addDataFlavor('text/unicode');
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
        var copytext = txt;
        str.data = copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        var clipid = Components.interfaces.nsIClipboard;
        if (!clip)
            return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
    }
    alert(COPYSUCCESS);
} 

function getElementPos(elementId) {
 var ua = navigator.userAgent.toLowerCase();
 var isOpera = (ua.indexOf('opera') != -1);
 var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
 var el = document.getElementById(elementId);
 if(el.parentNode === null || el.style.display == 'none') {
  return false;
 }     
 var parent = null;
 var pos = [];    
 var box;    
 if(el.getBoundingClientRect)    //IE
 {         
  box = el.getBoundingClientRect();
  var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
  var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
  return {x:box.left + scrollLeft, y:box.top + scrollTop};
 }else if(document.getBoxObjectFor)    // gecko   
 {
  box = document.getBoxObjectFor(el);
  var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
  var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
  pos = [box.x - borderLeft, box.y - borderTop];
 } else    // safari & opera   
 {
  pos = [el.offsetLeft, el.offsetTop]; 
  parent = el.offsetParent;    
  if (parent != el) {
   while (parent) { 
    pos[0] += parent.offsetLeft;
    pos[1] += parent.offsetTop;
    parent = parent.offsetParent;
   } 
  }  
  if (ua.indexOf('opera') != -1 || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) {
   pos[0] -= document.body.offsetLeft;
   pos[1] -= document.body.offsetTop;        
  }   
 }             
 if (el.parentNode) {
    parent = el.parentNode;
   } else {
    parent = null;
   }
 while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
  pos[0] -= parent.scrollLeft;
  pos[1] -= parent.scrollTop;
  if (parent.parentNode) {
   parent = parent.parentNode;
  } else {
   parent = null;
  }
 }
 return {x:pos[0], y:pos[1]};
}

function __RandomDate()
{
	var d = new Date();
	return d.getTime();
}

function OpenBlogUserPwd(p,i){
    __Running();
    $.post("/Ajax.aspx",{a:"validateblogpwd",pwd:p,bid:i},function(data){
        if(data=="ERROR:NOT_RIGHT!"){
            alert(CaraQLang.WrongPassword);            
        }
        else{
            $("div.BlogContentForPwd"+i).html(data);
            $("div.BlogContentForPwd"+i).show();
            $("#BlogNeedPwd"+i).hide();
            __DealImg();
        }
        __CloseDialog("WebAlertDialog");
    });
}

function __DealImg(){
    var img = $(".content img");
    var maxW = 560.00;
    img.each(function(i){
        var oldW = this.width;
        if(oldW > maxW){
            var h = this.height;
            this.width = maxW;
            this.height = h*parseFloat(maxW/oldW);
            this.style.cursor = "pointer";
            if(this.parentNode.tagName!="a"&&this.parentNode.tagName!="A"){
                this.onclick = function(){
                    open(this.src);
                };
            }
        }
    });
}

function __ShowAddFriendDialog(uid,power){
    var needpwd = false;
    if(power==2){
        needpwd = true;
    }
    if(typeof(__IsLogin)=='undefined' || !__IsLogin){
        ShowLoginDialog();
        return;
    }
    __ForbidBrowser(true,false,"AddFriendDialog");
    
    var htmlBody;
    if(power == 1)
        htmlBody = "<div class=Tip>"+CaraQLang.ForbidToAddFriend+"</div>";
    else
    {
        var pwdinput = "";
        if(needpwd)
            pwdinput = "<br><div class=MustInput style=\"padding-top:5px;\">*</div>"+CaraQLang.PeopleNeedPwd+"<input type=password id=addtofriend_pwd name=addtofriend_pwd />";
        htmlBody = "<div>"+CaraQLang.InputAddToBeFriendText+"<br><textarea id=addfriend_text name=addfriend_text style=\"width:280px;height:80px;\"></textarea>"+pwdinput+"<div class=btn style=\"padding:3px;padding-left:35%\"><div class=roundButton><a href=\"javascript:;\" onclick=\"__AddFriend("+uid+","+needpwd+");\">"+CaraQLang.AddToBeFriend+"</a></div></div></div>";
    }
    __ShowNormalDialog("AddFriendDialog", CaraQLang.AddToBeFriend, htmlBody, 300, 200, 150, 100);
}

function __AddFriend(uid,needpwd){
    var pwd = "";
    if(needpwd){
        pwd = $get("addtofriend_pwd").value;
        if(pwd.length==0){
            alert(CaraQLang.PleaseInputPwd);
            return;
        }
    }
    
    $("#AddFriendDialog .body .btn").hide();
    $("#AddFriendDialog .body .doresult").remove();
    $("#AddFriendDialog .body").append("<div class=clear></div><div class=doresult><div class=\"runTip clear\">"+CaraQLang.WaitForAMoment+"</div></div>");
    $.post("/Ajax.aspx",{a:"addfriend",uid:uid,content:$("#addfriend_text").val(),pwd:pwd},function(data){
        if(data.toString() == "Error_WrongPwd"){
            alert(CaraQLang.WrongPassword);
            $("#AddFriendDialog .body .doresult").remove();
        }else if(data.toString() == "NOT_LOGIN"){
            alert(CaraQLang.NotLogin);
            __CloseDialog("AddFriendDialog");
            ShowLoginDialog();
        }else {
            $("#AddFriendDialog .body .doresult").html(data);
            alert(data.toString().replace(/\<(.|\\n|\/)*?\>/g,""));
            __CloseDialog("AddFriendDialog");
        }
        $("#AddFriendDialog .body .btn").show();
    });
}

function __showAgreeBeFriendBtn(){
    $('div.agreeBeFriend_div').each(function(i){
        var obj = this;
        var uid = $(obj).attr('title');
        
        $.get('/Ajax.aspx',{a:'ishowagreebtn',arg:uid,r:__RandomDate()},function(data){
            if(data=='1'){
                $(obj).removeClass('agreeBeFriend_div').addClass('roundButton');
                $(obj).html("<a href='javascript:' onclick='agreeBeFriend(" + uid + ",this);'>同意</a>");                
            }else if(data=='2'){
                $(obj).removeClass('agreeBeFriend_div').addClass('AddFriendOK l').html('');
            }else if(data=='3'){
                $(obj).removeClass('agreeBeFriend_div').addClass('NotAddFriend l').html('');
            }
            $(obj).attr('title','');
            $(obj).show();
        });
    });    
}

function agreeBeFriend(id,obj){

    if($(obj).attr("flag")!='1'){
        $(obj).attr('flag','1');
        $(obj).attr('disabled',true);
        $.post("/Ajax.aspx",{a:"agreeBeFriend",FID:id},function(data){
            if(data == "OK")
                $(obj).parent().removeClass('roundButton').addClass('AddFriendOK l').html('&nbsp;');
            else{
                $(obj).attr('disabled',false);
                alert(CaraQLang.NotLogin);
            }
        });
    }
    else{
        alert(CaraQLang.WaitForAMoment);
    }
}
function __flexHeaderMenu(){
    //各功能块显示、隐藏
    if(typeof(__IsLogin)=='undefined' || !__IsLogin)return;
    $("div.header").each(function(i){
        if(this.className.indexOf("flex")!=-1){
            $(this).html("<div class=l>"+$(this).html()+"</div><div class=\"flexOpenImg\"></div>");
            var nowid = $(this).attr("title");
            var obj = $(this).next(".body").get(0);
            if(obj.style.display=='none')
                $(this).find(".flexOpenImg").attr("class","flexCloseImg");
            $(this).click(function(){                
                if(obj.style.display!='none'){
                    obj.style.display='none';                    
                    $(this).find(".flexOpenImg").attr("class","flexCloseImg");
                    $.post("/Ajax.aspx",{a:"setICaraQ",id:nowid,stat:0},function(data){});
                }
                else{
                    obj.style.display='';
                    $(this).find(".flexCloseImg").attr("class","flexOpenImg");
                    $.post("/Ajax.aspx",{a:"setICaraQ",id:nowid,stat:1},function(data){});
                }
            });
            $(this).removeAttr("title");
        }
    });
}

function __skinSet(){
    if(typeof(__IsLogin)=='undefined' || !__IsLogin)return;
    if (typeof(CARAQ_SKINSET)!='undefined') {
		if($get("CaraQSkinReSet")){
			var obj = $("#CaraQSkinReSet");
			obj.css('top', (doc.clientHeight + scroll_top - 28) + 'px');
			obj.css('height', '28px');
			obj.css('right','-'+scroll_left+'px');

		}else{
			if(CARAQ_SKINSET == 1)	
				$("body").append("<div id='CaraQSkinReSet'><a href='/?c=toskin&type="+CARAQ_SKINSET+"'>切換到預設模板</a></div>");
			else
				$("body").append("<div id='CaraQSkinReSet'><a href='/?c=toskin&type="+CARAQ_SKINSET+"'>切換到用戶模板</a></div>");
			__skinSet();
		}
	}
}

function __getRandomTask(){
    if(typeof(__IsLogin)=='undefined' || !__IsLogin)return;
    $.post('/Ajax.aspx?'+__RandomDate(),{a:'getRandomTask',r:__RandomDate()},function(data){
        //alert(data);
        if(data!=''){
            var obj = $('#randomTask_div');
            obj.html('<div class=clear></div>'+data+'<div class=clear></div>');
            obj.show();
        } 
    });
}

function __getRandomTaskPrize(){
    if(typeof(__IsLogin)=='undefined' || !__IsLogin){
        ShowLoginDialog();
        return;
    }
    
    if(document.getElementById('randomTask_div')){
        $.post('/Ajax.aspx',{a:'getRandomTaskPrize',r:__RandomDate()},function(data){
        
            if(data != ''){
                var obj = $('#randomTask_div');
                obj.html('<div class=clear></div>'+data+'<div class=clear></div>');
            }
        });
    }
}

function __cancelRandomTask() {
    if(typeof(__IsLogin)=='undefined' || !__IsLogin){
        ShowLoginDialog();
        return;
    }
    if (!confirm(CaraQLang.CancelRandomTask)) return;
    
    if(document.getElementById('randomTask_div')){
        $.post('/Ajax.aspx',{a:'cancelRandomTask',r:__RandomDate()},function(data){
        
            if(data != ''){
                $('#randomTask_div').hide();
            }
        });
    }
}