var img_menu_open = '';
var img_menu_close = '';
var debugOn = false;
var sZID;

function changeMenu(cid) {
	o = document.getElementById("tb_sub_" + cid);
	m = document.getElementById("a_" + cid);
	if (o == null) return;
	var typeExt = '';
	if(cid == 's') typeExt = '_subs';
	if (o.style.display == 'block') {
		o.style.display = 'none';
		if (m) m.innerHTML = combineExt(img_menu_open, typeExt, cid, 'none');

	} else {
		o.style.display = 'block';
		if (m) m.innerHTML = combineExt(img_menu_close, typeExt, cid, 'block');

	}

}



function changeMenuClient(cid) {
	linkurl = "http://www.zcom.com/menudata/category_" + cid + ".html" ;
	o = document.getElementById("tb_sub_" + cid);
	m = document.getElementById("a_" + cid);
	if (o == null) return;
	if (o.style.display == 'block') {
		o.style.display = 'none';
		if (m) m.innerHTML = img_menu_open;
	} else {
		o.style.display = 'block';
		if (m) m.innerHTML = img_menu_close;
		o.innerHTML="<div class='loadingNav'>Loading...</div>";
		//window.frames["hiddenframe"].document.location.href = linkurl ;
		try{
			loadXMLDoc(linkurl,eval);
		}catch(ex){debug("CHGM: "+ex);}
	}
}

function combineExt(imgTag, typeExt, cid, disp){
	
	//保存客户端菜单展开结果?
	

	//交换图片

	var img_re = new RegExp("\\.gif");
	
	return imgTag.replace(img_re, typeExt + '.gif');

}

function isMyClient(){
	
	var temp = false;

	try {
		ZCOMActiveX.setVersion("zcom.normal.1.1.1");

		if (ZCOMActiveX.getLocalAppDataDir() != "错误:您还未安装数字杂志客户端,请先下载安装!") {
			temp = true;
			sZID = ZCOMActiveX.getActiveUser();
		} 
	} catch (ex) {}

	return temp;

}

function iframeGet(urls){

	var oHsFrame = document.getElementById("hsFrame");

	if(!oHsFrame){
		document.write("<iframe id='hsFrame' width='0' height='0' src='about:blank' style='display:none'></iframe>");
	}

	oHsFrame.src = urls;

}


var sAyN = new Array();
var sAyA = new Array();


function loadXMLDoc(url,funcToDo){

	var xmlhttp;
	
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e1){
		
		try{
			
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

		}catch(e2){

			try{

				xmlhttp=new XMLHttpRequest();

			}catch(e3){}

		}

	}


	
	if(xmlhttp){
		
		xmlhttp.onreadystatechange=function(){
			if (xmlhttp.readyState==4){
				if (xmlhttp.status==200){
					try{

						funcToDo( xmlhttp.responseText );

					}catch(e){}

				}
			}
		}

		xmlhttp.open("GET",url,true);
		xmlhttp.send(null);
		
	}
	
	delete xmlhttp;
}



var sSubscribe;
var magListLoaded = false;
function initSubscribeMenu(){
	
	try{
		debug("initSM.");
		if(load_menu_done == false){
			return ;
		}

		if(isMyClient() != true){
			//alert("not my client.");
			return ;
		}

		//sZID = ZCOMActiveX.getActiveUser();

		if ((sZID == "unknow")||(sZID == 0) || (sZID == null)) {
			//alert("NO ZID.");
			return ;
		}
		
		try{
			readSubscribe();
		}catch(ex1){}

		var lastSubscribeTime = /lastSubscribeTime\t([0-9]+)\n/.exec(ZCOMActiveX.getUserInfo(sZID));
	
		var d = new Date();
		var t = d.getTime();
		var tmstmp = t.toString().substring(0, 10);

		var temp = false;
	
		try{

			if(lastSubscribeTime == null){

				temp = true;

			}else if ( parseInt(lastSubscribeTime[1]) + 600  < parseInt(tmstmp)) {
				
				temp = true;
			}

		}catch(ex2){

			temp = true;
		}

		if(temp == true){
			try{
				ZCOMActiveX.setUserInfo("lastSubscribeTime", tmstmp, sZID);
			}catch(ex3){}
		}	

		if( sSubscribe=='blank' || sSubscribe=='' || sSubscribe==',' || typeof(sSubscribe) == 'undefined' ){

			if(temp == true){
				loadRemoteSublist();
			}
			return ;
		}
		
	
		//读取列表
		//iframeGet("http://www.zcom.com/magname_list.js");

		if(magListLoaded == true){
		
			mag_list_loaded();

		}else{
		

			loadXMLDoc("http://www.zcom.com/menudata/magname_list.js", eval);

		}
	

		//订阅下载


		//if(updateSublist == true){

			//iteratorSubscribe();

		//} else
		
		if(temp == true){
	
			sendSubscribe();

		}


	}catch(ex){}

}


function mag_list_loaded(){
	
	magListLoaded = true;

	try{

		var ssLine = '';
		
		var sArr = sSubscribe.split(",");
		
		var info;

		for(var i=0;i<sArr.length;i++){
			if(typeof(sAyA[sArr[i]]) != "undefined" && sArr[i] != '' && typeof(sAyN[sArr[i]]) != "undefined"){

				ssLine += "<li><a href='http://www.zcom.com/" + sAyA[sArr[i]] + "/" + sArr[i] + "/'>" + sAyN[sArr[i]] + "</a></li>";

			}
		}

		oSubContainer = document.getElementById("tb_sub_s");
			
		oSubContainer.innerHTML = ssLine;

		document.getElementById("menuContainer2").style.display = 'block';

	}catch(ex){}


}


function sendSubscribe(){
	
	try{
		var fsu = "http://www.zcom.com/client/subscribe/";

		fsu += sSubscribe;
		debug("Send Subscribe.\n"+fsu);
		loadXMLDoc(fsu, nothingToDo);
			
	}catch(ex){}

	updateSublist = false;

}

function loadRemoteSublist(){

	debug("Load From Remote.");
	var fsu = "http://www.zcom.com/client/subscribe/load";

	try{

		loadXMLDoc(fsu , setSubscribe);
	
	}catch(ex){}

}

function setSubscribe(text){

	debug(text);
	
	if(text != 'blank' && text != '' && text != ','){
		
		try{
			saveSubscribe(text);
	
			sSubscribe = text;

		}catch(ex){}
	
		//直接显示menu?

	}
}


//保存到reg
function saveSubscribe(sSubscribe){
	
	debug("EEFFCC: "+sSubscribe);

	var ss = sSubscribe.split(",");
	var idx,oneList;
	var noRepeat = ',';
	
	clearSubscribe();
	
	var k = 0;

	for(var i=0;i<ss.length;){
		
		oneList = ',';

		for(var j=0;j<30;j++){

			idx = i + j;

			if( ss[idx]!='' && typeof(ss[idx])!="undefined" && noRepeat.indexOf(','+ss[idx]+',') == -1){

				oneList += ss[idx] + ","; //一行
				noRepeat += ss[idx] + ",";//总

			}


		}

		ZCOMActiveX.setUserInfo("subscribe_"+k, oneList, sZID);
		k++;
		i += 30;
	}

	debug("Save Reg: "+noRepeat);

}

function clearSubscribe(){
	
	var userInfo = ZCOMActiveX.getUserInfo(sZID);
	
	if( userInfo.indexOf("subscribe\t") != -1 ){
		clearRegArg("subscribe");
	}

	for(var i=0;i<10;i++){
		
		if( userInfo.indexOf("subscribe_"+i+"\t") != -1 ){
			clearRegArg("subscribe_"+i);
		}

	}
}

function clearRegArg(key){
	try{
		ZCOMActiveX.setUserInfo(key, "", sZID);
	}catch(ex){}
}

//从reg中读取
function readSubscribe(){
	
	try{
		var userInfo = ZCOMActiveX.getUserInfo(sZID);
		var re = new RegExp("subscribe[0-9_]{0,4}\t([0-9,]+)\n","gi");
		var re2 = new RegExp("subscribe[0-9_]{0,4}\t([0-9,]+)\n","i");
		var aSubscribe = userInfo.match(re);

		//var aSubscribe = /subscribe_([0-9]{0,4})\t([0-9,]+)\n/.exec(ZCOMActiveX.getUserInfo(sZID));


		var outputs = ',';
		var sASubscribe;

		//sSubscribe = RegExp.$1;
		for(var i=0;i<aSubscribe.length;i++){

			
			sASubscribe = aSubscribe[i].match(re2);
			

			var ss = sASubscribe[1].split(",");
			
			for(var j=0;j<ss.length;j++){

				if( ss[j]!='' && typeof(ss[j])!="undefined" && outputs.indexOf(','+ss[j]+',') == -1 && parseInt(ss[j]) < 1000 ){

					outputs +=  ss[j] + ",";

				}
			
			}

		}

	}catch(ex){
		outputs = ",";
	}
	

	debug("Read Reg: "+outputs);

	sSubscribe = outputs;
	
	return outputs;
}


function echo(text){alert("Echo: "+text);}
function nothingToDo(args){}

function debug(msg){ 
	if(debugOn) alert(msg); 
}
