var dom = YAHOO.util.Dom,event = YAHOO.util.Event,DDM = YAHOO.util.DragDropMgr;
YAHOO.namespace('dialog');
var init = function(){
	YAHOO.util.Dom.get('q').focus();
	new YAHOO.util.DDTarget("g1");
	new YAHOO.util.DDTarget("g2");
	new YAHOO.util.DDTarget("g3");
	new YAHOO.util.DDTarget("g3dm");
	new YAHOO.util.DDTarget("g2dm");
	new YAHOO.util.DDTarget("g1dm");
	for(i in modList){
		var dd = new DDList('app'+modList[i]);
		dd.setHandleElId('app'+modList[i]+'Handle');
	}
	//for(i in modList){		
		//loadApp(modList[i]);
	//}
	pos();
	//var a = new YAHOO.widget.LogReader();
}
var DDList = function(id,group,config){
	DDList.superclass.constructor.call(this, id, group, config);
	var el = this.getDragEl();
    dom.setStyle(el, "opacity", 0.67); 
    this.goingUp = false;
    this.lastY = 0;
}
YAHOO.extend(DDList, YAHOO.util.DDProxy, {
    startDrag: function(x, y) {
        var dragEl = this.getDragEl();
        var clickEl = this.getEl();
		//dom.setStyle(clickEl, "visibility", "hidden");
		dom.addClass(clickEl,'modMove');
		YAHOO.log(clickEl.className);
		dragEl.innerHTML = clickEl.innerHTML;
    },
	endDrag: function(e) {
        var srcEl = this.getEl();
        var proxy = this.getDragEl();
        dom.setStyle(proxy, "visibility", "");
        var a = new YAHOO.util.Motion( 
            proxy, { 
                points: { 
                    to: dom.getXY(srcEl)
                }
            }, 
            0.2, 
            YAHOO.util.Easing.easeOut 
        )
        var proxyid = proxy.id;
        var thisid = this.id;
        a.onComplete.subscribe(function() {
                dom.setStyle(proxyid, "visibility", "hidden");
                //dom.setStyle(thisid, "visibility", "");
				dom.removeClass(thisid,'modMove');
				proxy.innerHTML = '';
				pos();
            });		
        a.animate();
    },
	onDrag: function(e) {		
        var y = event.getPageY(e);
        if (y < this.lastY) {
            this.goingUp = true;
        } else if (y > this.lastY) {
            this.goingUp = false;
        }
        this.lastY = y;
    },
    onDragOver: function(e, id) {
        var srcEl = this.getEl();
        var destEl = dom.get(id);
		if(destEl.className == 'mod'){
			var orig_p = srcEl.parentNode;
            var p = destEl.parentNode;
            if (this.goingUp) {
                p.insertBefore(srcEl, destEl); 
            }else {
                 p.insertBefore(srcEl, destEl.nextSibling);
            }
            DDM.refreshCache();
		}else if(destEl.className == 'dm'){
			var p = destEl.parentNode;
			p.insertBefore(srcEl, destEl);
			DDM.refreshCache();
		}
		/**
        if (destEl.nodeName.toLowerCase() == "li") {
            var orig_p = srcEl.parentNode;
            var p = destEl.parentNode;
            if (this.goingUp) {
                p.insertBefore(srcEl, destEl); 
            }else {
                p.insertBefore(srcEl, destEl.nextSibling);
            }
            DDM.refreshCache();
        }
        **/
    }
});
	
//YAHOO.util.Event.onDOMReady(init);
YAHOO.util.Event.onContentReady('con',init);

/**
 * 模块位置
 */
var pos = function() {
	var parseList = function(g) {
		// var items = ul.getElementsByTagName("div");
		var items = YAHOO.util.Selector.query('#'+g+' div.mod'); 
		var out = g + ": ";
		for (i=0;i<items.length;i=i+1) {
			out += items[i].id.replace(/app/,'') + ",";
		}
		return out;
	};
	var data = parseList('g1') + ";" + parseList("g2")+";"+ parseList("g3");
	if(login == 0){
		//alert('没有登录，不能保存！');
		//return;
	}	
	var callback = {
		success:function(o){
			if(o.responseText == 0){
				//alert(o.responseText);
			}else{
				//alert(o.responseText);
			}
		}
	}
	var url = WWWROOT + 'i/tag-save/';
	var postData = 'tag='+tag.id+'&app='+data;
	YAHOO.util.Connect.asyncRequest('POST',url,callback,postData);	
	//alert(parseList(g1, "g1") + "\n" + parseList(g2, "g2")+"\n"+ parseList(g3, "g3"));
}

/**
 * 最小化mod
 * @param {Object} mod
 */
var min = function(mod)
{
	dom.setStyle(mod+'Con','display','none');
	dom.setStyle(mod+'Min','display','none');
	dom.setStyle(mod+'Max','display','block');
}
var max = function(mod)
{
	dom.setStyle(mod+'Con','display','block');
	dom.setStyle(mod+'Min','display','block');
	dom.setStyle(mod+'Max','display','none');
}
/**
 * 打开/关闭设置表单
 * @param {Object} mod
 */
var set = function(mod)
{
	var id = mod+'SetCon';
	if(dom.getStyle(id,'display') == 'block'){
		dom.setStyle(mod+'SetCon','display','none');
	}else{
		dom.setStyle(mod+'SetCon','display','block');
	}
}

/**
 * 关闭模块
 * @param {Object} id
 */
var del = function(id){
	if(!confirm('是否确认要关闭！')) return;
	var obj = YAHOO.util.Dom.get(id);
	obj.parentNode.removeChild(obj);
	//YAHOO.util.Connect.asyncRequest('GET',WWWROOT+'i/app-del/id/'+id.replace(/app/,''));
	pos();
}

/**
 * 保存表单设置
 * @param {Object} mod
 */
var setSave = function(mod)
{
	alert('ok');
}

/**
 * 查看rss描述内容
 * @param {Object} id
 */
var rssView = function(id){
	var obj = YAHOO.util.Dom.get(id);
	if(YAHOO.util.Dom.getStyle(id,'display') == 'block'){
		YAHOO.util.Dom.setStyle(id,'display','none');
		YAHOO.util.Dom.removeClass(id+'-but','off');
		YAHOO.util.Dom.addClass(id+'-but','on');
	}else{
		YAHOO.util.Dom.setStyle(id,'display','block');
		YAHOO.util.Dom.removeClass(id+'-but','on');
		YAHOO.util.Dom.addClass(id+'-but','off');
	}
}

/**
 * 模块菜单
 * @param {Object} divid
 */
YAHOO.namespace('modMenu');
var modMenu = function(mod){
	var obj =YAHOO.util.Dom.get(mod+'modmenu');
	if(obj == null) return; 
	YAHOO.modMenu.c = new YAHOO.widget.Overlay("modmenu",{context:[mod+'Set',"tr","br",["beforeShow", "windowResize"]],
																					  visible:false,
																					  width:"90px" } );
	var html = obj.innerHTML;
	YAHOO.modMenu.c.setBody(html);
	YAHOO.modMenu.c.render(document.body);
	YAHOO.modMenu.c.show();
	YAHOO.util.Event.addListener("modmenu", "click", hideMenu);
	YAHOO.util.Dom.get(mod+'Setup').focus();
	YAHOO.util.Event.addBlurListener(mod+'Setup',hideMenu);
}
var hideMenu = function(){
	YAHOO.modMenu.c.hide();
}
/**
 * 保存修改设置
 * @param {Object} id
 */
var modEditSave = function(id){
	var msg = YAHOO.util.Dom.get(id+'Msg');
	msg.innerHTML=' - 正在保存！';
	var callback = {
		success:function(o){
			if(o.responseText != 1){
				alert(o.responseText);
			}
			msg.innerHTML='';
			loadApp(id.replace(/app/,''));
		}
	}
	YAHOO.util.Dom.setStyle(id+'modedit', 'display', 'none'); 
	var url = WWWROOT + 'i/app-edit';
	YAHOO.util.Connect.setForm(id+'form');
	YAHOO.util.Connect.asyncRequest('POST',url,callback);
}
/**
 * 重新载入应用内容
 * @param {Object} id
 */
var loadApp = function(id){
	var msg = YAHOO.util.Dom.get('app'+id+'Msg');
	msg.innerHTML=' - 正在载入！';
	var callback = {
		success:function(o){
			YAHOO.util.Dom.get('app'+id+'Con').innerHTML = o.responseText;
			msg.innerHTML='';
		}
	}
	var url = WWWROOT + 'i/app/id/'+id;
	YAHOO.util.Connect.asyncRequest('GET',url,callback);
}

var skin = function(name){
	var img = '<img src="'+WWWROOT+'images/i/selected.gif" alt=""/>';	
	YAHOO.util.Dom.get(name+'Theme').innerHTML = img;	
	YAHOO.util.Get.css(WWWROOT+'styles/i/'+name+'/skin.css');
	var url = WWWROOT + 'i/app-theme/tagid/'+tag.id+'/theme/'+name;
	YAHOO.util.Connect.asyncRequest('GET',url);
	YAHOO.util.Dom.get(theme+'Theme').innerHTML = '';
	theme = name;
}
/**
* 添加标签页
**/
var addTag = function(){
	if(login == 0){
		//alert('请先登录后再添加标签页！');
	}
	if(!YAHOO.dialog.addTag){
		YAHOO.dialog.addTag = new YAHOO.widget.Dialog("addTagDialog",{ modal: true,fixedcenter: true,width:"32em",underlay:'none',visible:false, constraintoviewport:true } );
		YAHOO.dialog.addTag.render();
	}
	YAHOO.dialog.addTag.show();
}
var addTagSave = function()
{
	var title = YAHOO.util.Dom.get('tagTitle').value;
	if(title == ''){
		alert('标签页名称不能为空!');
		return;
	}
	if(title.length > 21){
		alert('标签页名称太长，只能允许21个字符或7个中文字!');
		return;
	}
	var callback = {
		success:function(o){
			if(o.responseText == 0){
				alert('添加失败！你当前的用户级别只能允许添加6个标签页！');
			}else{
				sTag(o.responseText);
				YAHOO.dialog.addTag.hide();
			}
		}
	}
	var url = WWWROOT + 'i/tag-add';
	var data = 'title='+title;
	YAHOO.util.Connect.asyncRequest('POST',url,callback,data);
}

var sTag = function(id){
	var callback = {
		success:function(o){
			location.reload();
		}
	}
	var url = WWWROOT + 'i/select-tag';
	var data = 'id='+id;
	YAHOO.util.Connect.asyncRequest('POST',url,callback,data);
}
/*标签菜单*/
var tagMenu = function(){
	YAHOO.dialog.tagMenu = new YAHOO.widget.Overlay("tagMenuDialog",{context:['tagMenu',"tr","br",["beforeShow", "windowResize"]],
																					  visible:false,
																					  width:"90px" } );
	var html = '<div class="modMenu"><a href="javascript:void(0);" onclick="editTag();">编辑此标签页</a><a href="javascript:void(0);" onclick="delTag();">删除此标签页</a></div>';
	YAHOO.dialog.tagMenu.setBody(html);
	YAHOO.dialog.tagMenu.render(document.body);
	YAHOO.dialog.tagMenu.show();
	YAHOO.util.Event.addListener("tagMenuDialog", "click", tagMenuHide); 	
}
var tagMenuHide = function(){
	YAHOO.dialog.tagMenu.hide();
}
/*编辑标签页*/
var editTag = function(id){
	if(!YAHOO.dialog.editTag){
		YAHOO.dialog.editTag = new YAHOO.widget.Dialog("editTagDialog",{ modal: true,fixedcenter: true,width:"32em",underlay:'none',visible:false, constraintoviewport:true } );
		YAHOO.dialog.editTag.render();
	}
	YAHOO.util.Dom.get('editTagTitle').value=tag.title;
	YAHOO.dialog.editTag.show();
}
var editTagSave = function(){
	var title = YAHOO.util.Dom.get('editTagTitle').value;
	if(title == ''){
		alert('标签页名称不能为空!');
		return;
	}
	var callback = {
		success:function(o){
			//alert(o.responseText);
			location.reload();
		}
	}
	var url = WWWROOT + 'i/tag-edit';
	var data = 'id='+tag.id+'&title='+title;
	YAHOO.util.Connect.asyncRequest('POST',url,callback,data);
}
var delTag = function(id){
	if(!confirm('确定要删除些标签页！')) return;
	var callback = {
		success:function(o){
			//alert(o.responseText);
			location.reload();
		}
	}
	var url = WWWROOT + 'i/tag-del/id/'+tag.id;
	YAHOO.util.Connect.asyncRequest('GET',url,callback);
}
var minAll = function(){
	YAHOO.util.Dom.setStyle('allMax','display','block');
	YAHOO.util.Dom.setStyle('allMin','display','none');
	for(i in modList){
		dom.setStyle('app'+modList[i]+'Con','display','none');
		dom.setStyle('app'+modList[i]+'Min','display','none');
		dom.setStyle('app'+modList[i]+'Max','display','block');
	}
}
var maxAll = function()
{
	YAHOO.util.Dom.setStyle('allMin','display','block');
	YAHOO.util.Dom.setStyle('allMax','display','none');
	for(i in modList){
		dom.setStyle('app'+modList[i]+'Con','display','block');
		dom.setStyle('app'+modList[i]+'Min','display','block');
		dom.setStyle('app'+modList[i]+'Max','display','none');
	}
}
/*设为首页*/
var SetGY = function(vrl){
 	if (document.all){
		document.body.style.behavior='url(#default#homepage)';
	  	document.body.setHomePage(vrl);
    }else if (window.sidebar){
	    if(window.netscape){
	         try{ 
	            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
	         } 
	         catch (e){ 
	    		alert( "该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" ); 
	         }
	    }
	    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
	    prefs.setCharPref('browser.startup.homepage',vrl);
	}
}