﻿// JavaScript Document
var StringBuilder = function(){
	this._strs_ = [];
};
StringBuilder.prototype.append = function(str){
	this._strs_.push(str);
};
StringBuilder.prototype.toString = function(){
	return this._strs_.join("");
};

var time_pageload = new Date();
/**
 * 公共变量域
 **/
var ajax_url = {
	cyFlUrl : 'http://vipchat.myspace.cn/jbft2/jsi.php',
	lsURL : 'http://vipchat.myspace.cn/jsi.php'
}
var lsDomain = "vipchat";

function closemark_lj(){
	masker.close();
}
function checkDefaultvalueExit(aeP, event){
	var e = window.event || event;
	var loPos = getCursorPosition(aeP);
	var liStart = loPos.start, liEnd = loPos.end;
	var lsDefvalue = aeP.getAttribute("defValue"), liLen = lsDefvalue.length;
	if(liStart >= liLen){
		return false;
	}else{
		var keyCode = e.keyCode;
		if(keyCode == 8){
			var str1 = lsDefvalue.substr(0, liLen), str2 = aeP.value.substr(liLen-1);
			var str = str1+lsDefvalue.substr(liLen, 1)+str2;
			aeP.value = str;
		}
		var end = liLen < liEnd? liEnd: liLen;
		setCaretPosition(aeP, liLen, end);
	}
	
}	

function insBefore(aePaNode, aeBeNode, aeInsElem){
	//检查aePaNode是否存在(aePaNode是可选项)
	if(aeInsElem == null){
		aeInsElem = aeBeNode;
		aeBeNode = aePaNode;
		aePaNode = aeBeNode.parentNode;
	}
	//如果没有子节点则认为添加节点
	if(aeBeNode == null){
		aePaNode.appendChild(checkElem(aeInsElem));
		return false;
	}
	aePaNode.insertBefore(checkElem(aeInsElem), aeBeNode);
	return false;
	function checkElem(elem){
		//如果只提供字符串,则把它转化为文本节点
		return elem && elem.constructor == String ? document.createTextNode(elem) : elem;
	}
}
function getLastChild(aeElem){
	if(aeElem == null){
		alert(aeElem+" is not element!");
	}
	var leElem = null;
	leElem = aeElem.lastChild;
	if(leElem.nodeType!=1){
		do{
			leElem = leElem.previousSibling;
		}while(leElem && leElem.nodeType!=1);
	}
	return leElem;
}

function domReady(afCallback){
   if (!afCallback){
	   return;
   }
   if (document.addEventListener) {
	   document.addEventListener("DOMContentLoaded", function(){
		  afCallback()
	   }, false);
   }else{
	   (function(){
		  try {
			  document.documentElement.doScroll("left");
		  } catch(error) {
			  setTimeout( arguments.callee,0);
			  return;
		  }
		  afCallback();
	   })();
   }
}
//===================ajax 请求==================//
function loadServices(aoOBJ){
	var loXML = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	try {
		loXML.open(aoOBJ.method || "POST", aoOBJ.webservices, false);
		if (aoOBJ.contentType){
			loXML.setRequestHeader("Content-Type", aoOBJ.contentType);
		}
		loXML.send(aoOBJ.values);
	} 
	catch (ex) {
		return "";
	}
	if (loXML != null && loXML.readyState == 4) {
		return loXML.responseText;
	}
	return "";
}
function loadAjax(aoObj, afCallback, asDomain){
	if(document.all){
		action(delay);
	}else{
		delay();
	}

	function delay(){
		if (document.domain != "myspace.cn"){
			document.domain = "myspace.cn";
		} 
		if (aoObj == null){
			return false;
		}
		if (asDomain == null){
			asDomain = "ajaxv2";
		}
		var lsFrameUrl = "http://" + asDomain + ".myspace.cn/_common/static/post.html";
		var lsFrameName = asDomain + "_frame";
		var lsFrameWrapperId = asDomain+"_frameWrapper";
		var leFrameWrapper = document.getElementById(lsFrameWrapperId);
		if (window.frames[lsFrameName] == null){
			leFrameWrapper = document.createElement("span");
			leFrameWrapper.id = lsFrameWrapperId;
			leFrameWrapper.style.display = "none";
			document.body.appendChild(leFrameWrapper);
			leFrameWrapper.innerHTML = '<iframe name='+lsFrameName+'></iframe>';
			addLoadListener();
		}else if(window.frames[lsFrameName].loadServices == null){
			addLoadListener();
		}else{
			lfCallback();
		}
		function addLoadListener(){
			var leIframe =  leFrameWrapper.getElementsByTagName("iframe")[0];
		    if (navigator.userAgent.indexOf("IE")!=-1) {
		       leIframe.attachEvent("onload", lfCallback);
		    } else {
		        leIframe.addEventListener("load", lfCallback, false);
		    }
			leIframe.src = lsFrameUrl;				
		}
		
		function lfCallback(){
			afCallback(json2Obj(window.frames[lsFrameName].loadServices(aoObj)));
		}				
	}
	function action(afDelay){
		var timer = function(){
			try{
				document.documentElement.doScroll("left");
				afDelay();
			}catch(error) {
				var loErr=new Image();
				loErr.src="http://count.myspace.cn/images/error.gif?url="+location.href+"&service="+aoObj.webservices;
				setTimeout(timer, 200);
			}					
		}
		timer();
	}
}
function loadAjax_Asyn(option,path){
    if(navigator.userAgent.indexOf("IE")!=-1){ 
            (function(){ 
                    try{ 
                            document.documentElement.doScroll("left"); 
                            action(); 
                    }catch(error) {                                                  
                            setTimeout(arguments.callee, 200); 
                    }                                        
            })();
    }else{ 
            action(); 
    } 
    function action(){
            var xDomain = document.domain.split(".");
            if (xDomain.length >= 2){
                    document.domain=xDomain[xDomain.length-2] + "." + xDomain[xDomain.length-1];
            }
            if (!option||!option.url){ 
                    return; 
            }
            var liIndex=option.url.indexOf("/",7);
            var lsFrameUrl = option.url.substring(0,liIndex) + (path||"/ajax.html");
            var lsDomin= option.url.substring(7,liIndex).split(".").join("_");
            var lsFrameName = lsDomin + "_frame"; 
            var lsFrameWrapperId = lsDomin+"_frameWrapper"; 
            var leFrameWrapper = document.getElementById(lsFrameWrapperId); 
            if (window.frames[lsFrameName] == null){ 
                    leFrameWrapper = document.createElement("span"); 
                    leFrameWrapper.id = lsFrameWrapperId; 
                    leFrameWrapper.style.display = "none"; 
                    document.body.appendChild(leFrameWrapper); 
                    leFrameWrapper.innerHTML = '<iframe name='+lsFrameName+'></iframe>'; 
                    listen(); 
            }else if(window.frames[lsFrameName].ajax == null){ 
                    listen(); 
            }else{ 
                    callback(); 
            } 
            function listen(){
                    var leIframe =  leFrameWrapper.getElementsByTagName("iframe")[0]; 
                    if (navigator.userAgent.indexOf("IE")!=-1) { 
                            leIframe.attachEvent("onload", callback); 
                    }else{ 
                            leIframe.addEventListener("load", callback, false); 
                    }
                    leIframe.src = lsFrameUrl;                               
            }
            function callback(){
                    var lsGUID="_ajax_callback"+Math.floor(Math.random()*16000).toString(16);
                    window[lsGUID]=option.callback||function(){};
                    option.callback=lsGUID;
                    var lxUrl=[];
                    
                    if(option.data){
                            for(var x in option.data){                                      
                                    lxUrl.push(x);
                                    lxUrl.push("=");
                                    lxUrl.push(option.data[x]);
                                    lxUrl.push("&");
                            }
                            lxUrl.pop();
                    }
                    if(option.method && option.method.toLowerCase()=="get"){
                            lxUrl.unshift(option.url.indexOf("?")==-1?"?":"&");
                            lxUrl.unshift(option.url);
                            option.url=lxUrl.join("");
                            option.data = "";
                    }else{
                            option.data = lxUrl.join("");
                    }
                    window.frames[lsFrameName].ajax(option); 
            }                               
    }                             
}   
function json2Obj(astr){
	var ljson;
	if(typeof astr == "object"){
		return astr;
	}
	astr = (astr != null) ? astr.split("\n").join("").split("\r").join("") : "";
	if (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/.test(astr.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) {
		if (astr != "") {
			ljson = eval('(' + astr + ')');
			return ljson;
		}
	}
	return {};
}

function getCursorPosition(textBox){        
    var start = 0, end = 0;
    if(typeof(textBox.selectionStart) == "number"){
        start = textBox.selectionStart;
        end = textBox.selectionEnd;
    }
    else if(document.selection) {
        var range = document.selection.createRange();
        if(range.parentElement().id == textBox.id) {
            var range_all = document.body.createTextRange();
            range_all.moveToElementText(textBox);
            for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++)
                range_all.moveStart('character', 1);
            for (var i = 0; i <= start; i ++) {
                if (textBox.value.charAt(i) == '\n')
                    start++;
            }
            var range_all = document.body.createTextRange();
            range_all.moveToElementText(textBox);
            for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++) {
                range_all.moveStart('character', 1);
            }
            for (var i = 0; i <= end; i ++) {
                if (textBox.value.charAt(i) == '\n')
                    end ++;
            }
        }
    }
    return {"start": start, "end": end};
}
function setCaretPosition(ctrl, start, end){  
    if(ctrl.setSelectionRange){  
        ctrl.focus();  
        ctrl.setSelectionRange(start, end); 
    }else if(ctrl.createTextRange){
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', end);
		range.moveStart('character', start);
		range.select(); 
    }
}