if (window._IN_EDIT_MODE) {
	editPortlets_onclick = function(e) {
		window.DISABLE_MOVE = true;
		var portlet = fp(this, 'div', {'type':'portlet'});
		if (portlet) {
			var id = portlet.getAttribute('id');

			//alert(id);
			var setting_div = fc(portlet, "div", null, "setting_div", true);
			if (!setting_div) {
				return false;
			}
			setting_div.style.display = "block";
			var portalSet_page = fc(document, "div", null, "portalSet_page", true);
			var page	= portalSet_page.getAttribute("page");
			var siteID	= portalSet_page.getAttribute("siteID");

	//		var display_application_list = fc(document, "div", null, "display_application_list", true);
			var ajx = new AjxCall();
			var post_data = new Object();
			post_data.page = page;
			post_data.portletID = id;
			post_data.siteID	= siteID;
			
			ajx.post_data = post_data;
			ajx.layerID = setting_div;
			ajx.call('/soap.php?action=editportlet',  '_editportlet_result');	
		}
		return false;
	};
	exportPortlet_onclick = function(e) {
		var portlet = fp(this, 'div', {'type':'portlet'});
		if (portlet) {
			var portlet_key = portlet.getAttribute("key");
			var setting = fc(portlet, "div", null, "setting", true);
			if (setting) {
				var value = setting.getAttribute("setting");
				
				value = '{"'+portlet_key+'":'+value+'}';
				window.prompt("Export Data", value);
			}
		}
		return false;
	};

	function _editportlet_result(result, json_data, layerID) {
		if (result) {
			var obj = JSON.parse(json_data);
			if (obj.result == 'success') {
				layerID.innerHTML = obj.data;

				var add_variable_btn = fc (layerID, "input", null, "add_variable_btn", true);
				add_variable_btn.onclick = function() {
					addMore(this, 'basic');
				}.bind(layerID);

				var add_filter_btn = fc (layerID, "input", null, "add_filter_btn", true);
				add_filter_btn.onclick = function() {
					addMore(this, 'filter');
				}.bind(layerID);

				var add_style_btn = fc (layerID, "input", null, "add_style_btn", true);
				add_style_btn.onclick = function() {
					addMore(this, 'style');
				}.bind(layerID);

				var class_setting_btn = fc (layerID, "input", null, "class_setting_btn", true);
				class_setting_btn.onclick = closeportletsetting.bind(layerID);

				var apply_setting_btn = fc (layerID, "input", null, "apply_setting_btn", true);
				apply_setting_btn.onclick = applyportletsetting.bind(layerID);


				layerID.style.display = "block";
			} else {
				alert("Error");
			}
		}
		return false;
	}
	function removePortlets_onclick(e) {
		var portlet = fp(this, 'div', {'type':'portlet'});
		if (portlet) {
			rn(portlet);
		}
		return false;	
	}

	function dragareas_onclick(e) {
		alert("dragareas_onclick");
	}
	/*
	var dragareas = fc(document, 'div', null, 'dragarea', false);
	for (var i=0; i<dragareas.length; i++) {
		dragareas[i].onclick = dragareas_onclick.bind(dragareas[i]);
	}
	*/


	var editPortlets = fc(document, 'a', null, 'editportlet', false);
	for (var i=0; i<editPortlets.length; i++) {
		editPortlets[i].onclick = editPortlets_onclick.bind(editPortlets[i]);
	}
	var removePortlets = fc(document, 'a', null, 'removeportlet', false);
	for (var i=0; i<removePortlets.length; i++) {
		removePortlets[i].onclick = removePortlets_onclick.bind(removePortlets[i]);
	}

	var exportPortlet = fc(document, 'a', null, 'exportportlet', false);
	for (var i=0; i<exportPortlet.length; i++) {
		exportPortlet[i].onclick = exportPortlet_onclick.bind(exportPortlet[i]);
	}




	var portlets = fc(document, 'div', {'type':'portlet'}, null, false);
	var portlet_names = new Array();
	for (var i=0; i<portlets.length; i++) {
		var name = portlets[i].getAttribute('id');
		portlet_names.push(name+RESIZABLE);
	}
	
	SET_DHTML(portlet_names); 


	function add_application(portalSet_page) {
		var display_application_list = fc(document, "div", null, "display_application_list", true);
		if (display_application_list.style.display != "none") {
			display_application_list.style.display = "none";
			display_application_list.style.height = "0px";
		} else {
			display_application_list.style.display = "block";
			display_application_list.style.height = "100px";
			var ajx = new AjxCall();
			var post_data = new Object();
			post_data.page = portalSet_page;
			
			ajx.post_data = post_data;
			ajx.layerID = display_application_list;
			ajx.call('/soap.php?action=listportlet',  '_add_application_result');	
		}
		return false;
	}
	function _add_application_result(result, json_data, layerID) {
		if (result) {
			var obj = JSON.parse(json_data);
			if (obj.result == 'success') {
				layerID.innerHTML = obj.data;
			} else {
				alert("Error");
			}
		}
		return false;
	}
	function insertNewPortlets(portletID) {
		var portlet_container = fc(document, 'div', null, "portlet_container", true);
		
		var ajx = new AjxCall();
		var post_data = new Object();
		post_data.portletID = portletID;	
		ajx.post_data = post_data;
		ajx.layerID = portlet_container;
		if (_DEBUG == 1) {
			ajx.call('/soap.php?action=loadcontent&debug=1',  '_insertNewPortlets_result');		
		} else {
			ajx.call('/soap.php?action=loadcontent',  '_insertNewPortlets_result');		
		}
	}
	function _insertNewPortlets_result (result, json_data, layerID) {
		if (result) {
			var obj = JSON.parse(json_data);
			if (obj.result == 'success') {
				var a = cex('div', {innerHTML: obj.data});
				var b = a.childNodes[0];
				b.style.zIndex = 9999;
				b.setAttribute('portletType', obj.portletType);
	//			alert("aaaaaaaaaaaaaaaaa"+obj.data);
				ac(layerID, b);
		
			} else {
				alert("Error");
			}
		}	
		return false;
	}
	function load_page() {
		var portalSet_load_form = fc(document, "form",  null, "portalSet_load_form", true);
		if (portalSet_load_form) {
			var portalset_page = fc(portalSet_load_form, "select", null, "portalset_page", true);
			if (!portalset_page) {
				return false;
			}
			window.location.href = "/admin/pageedit.php?debug=1&p="+portalset_page.value;
		}
	}

	function save_layout(portalSet_page) {
		var availableStyles = new Array();
		availableStyles['left'] 	= 1;
		availableStyles['top'] 		= 1;
		availableStyles['width'] 	= 1;
		availableStyles['height'] 	= 1;

		var ajx = new AjxCall();
		var post_data = new Object();
		var styleDatas = new Object();
		var portlets = fc(document, 'div', {'type':'portlet'}, null, false);
		
		var maxHeight = 100;
		for (var i=0; i<portlets.length; i++) {	
			var id 	  = portlets[i].getAttribute('id');
			var style = portlets[i].getAttribute('style');
			if (style && style != "" && typeof(style) != "object" ) {
				var tempstyle = new Array();
				var temp = style.split(";");
				for (var j=0; j<temp.length; j++) {
					var temp2 = temp[j].split(":");
					temp2[0] = trim(temp2[0]);
					temp2[1] = trim(temp2[1]);
					tempstyle[temp2[0]] = temp2[1];
				}
				style = tempstyle;
			}
			var zIndex = style.zIndex;

			var setting = fc (portlets[i], 'div', null, 'setting', true);
			if (setting) {
				styleDatas[id] = new Object();
							
				var set = setting.getAttribute('setting');			
				var new_portletType = portlets[i].getAttribute("portletType");
				if (new_portletType != null && new_portletType != "") {	
					styleDatas[id].portletType  = new_portletType;			
				} else {
					styleDatas[id].portletType  = portlets[i].getAttribute("key");
				}

				if (set != "" && set != null) {
					set = JSON.parse(set);
					var cur_style = (set.style).split(";");
					var styleData = new Array();
					for (var j=0; j<cur_style.length; j++) {
						var temp = cur_style[j].split(':');
						if (temp.length == 2) {
							styleData[temp[0]] = temp[1];
						}
					}
					for (var key in availableStyles) {
						if (style[key] != null && style[key] != '' && style[key] && availableStyles[key] == 1) {
							styleData[key] = style[key];
						}
					}
					
					if (!styleData['top']) {
						styleData['top'] = '0px';
					}
					if (!styleData['height']) {
						styleData['height'] = '20px';
					}
					if (zIndex > 0 ) {
						styleData['z-index']	= zIndex;
					}
		
					var this_top 	= styleData['top'].replace("px","");
					var this_height = styleData['height'].replace("px","");
					this_top    = parseInt(this_top);
					this_height = parseInt(this_height);
					
					maxHeight = ((this_top+this_height)>maxHeight)?(this_top+this_height):maxHeight;
							
					var tmpStyle = "";
					for (var key in styleData) {
						if (key != "______array" && styleData[key] != "______array") {
							tmpStyle += key+":"+styleData[key]+";";
						}
					}
					set.style = tmpStyle;			
					styleDatas[id].setting = JSON.stringify(set);				
				} else {
					set = new Object();
					
					var styleData = new Array();
					for (var key in style) {
						if (style[key] != null && style[key] != '' && style[key] && availableStyles[key] == 1) {
							styleData[key] = style[key];
						}
					}				
					if (!styleData['top']) {
						styleData['top'] = '0px';
					}
					if (!styleData['height']) {
						styleData['height'] = '20px';
					}						
		
					var this_top 	= styleData['top'].replace("px","");
					var this_height = styleData['height'].replace("px","");
					this_top    = parseInt(this_top);
					this_height = parseInt(this_height);
					
					maxHeight = ((this_top+this_height)>maxHeight)?(this_top+this_height):maxHeight;
							
					var tmpStyle = "";
					for (var key in styleData) {
						if (key != "______array" && styleData[key] != "______array") {
							tmpStyle += key+":"+styleData[key]+";";
						}
					}
					set.style = tmpStyle;			
					styleDatas[id].setting = JSON.stringify(set);				
				}

			}		
		}
		post_data.maxHeight = maxHeight;	
	//	post_data.page = portalSet_page;
	//	post_data.page = window.prompt("Please enter the page id ", portalSet_page);

		var portalSet_create_form = fc(document, "form",  null, "portalSet_create_form", true);

		var portalset_page_txt	= fc(portalSet_create_form, 'input', null, 'portalset_page', true);
		var site_id_txt			= fc(portalSet_create_form, 'input', null, 'site_id', true);


		var portalset_type_sel	= fc(portalSet_create_form, 'select', null, 'portalset_type', true);
		var portalset_available_chk	= fc(portalSet_create_form, 'input', null, 'portalset_available', true);
		var portalset_title_txt	= fc(portalSet_create_form, 'input', null, 'portalset_title', true);
		var ext_url_txt	= fc(portalSet_create_form, 'input', null, 'ext_url', true);



		post_data.page	  = portalset_page_txt.value;
		post_data.site_id = site_id_txt.value;
		post_data.ext_url = ext_url_txt.value;

		post_data.type		= portalset_type_sel.value;
		post_data.available = (portalset_available_chk.checked)?"T":"F";
		post_data.title		= portalset_title_txt.value;
		
		post_data.layout	= Portal.save();

		post_data.data = JSON.stringify(styleDatas);	
		ajx.post_data  = post_data;
		ajx.call('/soap.php?action=savelayout',  '_savelayout_result');		
		return false;
	}

	function _savelayout_result(result, json_data, layerID) {
		if (result) {
			var obj = JSON.parse(json_data);
			if (obj.result == 'success') {
				//alert(obj.data);
	// 			window.location.reload();
			} else {
				alert("Error");
			}
		}
		return false;
	}

	function closeportletsetting(e) {
		window.DISABLE_MOVE = false;
		rcFromNode(this);
		this.style.display = "none";
		return false;
	}
	function applyportletsetting() {
		var display_application_list = this;
		if (display_application_list) {
			var ajx = new AjxCall();
			var post_data = new Object();
			
			var portalSetID = fc(display_application_list, "input", {name:"portalSetID"}, null, true);		
			post_data.portalSetID = portalSetID.getAttribute('value');		
			
			var portletID = fc(display_application_list, "input", {name:"portletID"}, null, true);		
			post_data.portletID = portletID.getAttribute('value');
						

			var portletKey = fc(display_application_list, "input", {name:"portletKey"}, null, true);		
			post_data.portletKey = portletKey.getAttribute('value');				
			
			
			var fieldsets = fc(display_application_list, "fieldset", null, null, false);	
			
			var filter = {};
			var style  = {};
			var other  = {};
			for (var i=0; i<fieldsets.length; i++) {
				var classmn = fieldsets[i].className;
				if (classmn == 'filter') {
					var inputs = fc(fieldsets[i], "input", null, null, false);
					for (var j=0; j<inputs.length; j++) {
						var k = inputs[j].getAttribute("name");
						var t = inputs[j].getAttribute("type");
						if (k && k != "addfilter") {
							if (t == "checkbox") {
								if (inputs[j].checked == true) {
									if (!filter[k])	{
										filter[k] = new Array();
									}

									filter[k].push(inputs[j].value);
								}
							} else {
								if (k == "fids") {
									filter[k] = (inputs[j].value).split(",");
								} else {
									filter[k] = inputs[j].value;
								}
							}
						}
					}
				} else if (classmn == 'style') {
					var inputs = fc(fieldsets[i], "input", {type:"text"}, null, false);
					for (var j=0; j<inputs.length; j++) {
						var k = inputs[j].getAttribute("name");
						if (k && k != "addstyle") {
							style[k] = inputs[j].value;
						}
					}				
				} else {
					var inputs = fc(fieldsets[i], "input", {type:"text"}, null, false);
					for (var j=0; j<inputs.length; j++) {
						var k = inputs[j].getAttribute("name");
						if (k && k != "addvariable") {
							other[k] = inputs[j].value;
						}
					}
					
					var inputs = fc(fieldsets[i], "textarea", null, null, false);
					for (var j=0; j<inputs.length; j++) {
						var k = inputs[j].getAttribute("name");
						if (k && k != "addvariable") {
							other[k] = inputs[j].value;
						}
					}
				}
			}
			post_data.filter = JSON.stringify(filter);
			post_data.style  = JSON.stringify(style);
			post_data.other  = JSON.stringify(other);		

			var layerID = browser("portlet_"+post_data.portletID);
			
			var styleData = "";
			for (var key in style) {
				if (style[key] != null && style[key] != '' && style[key]) {
					styleData += key+":"+style[key]+";";
				}
			}			


			layerID.setAttribute("style", styleData);
			layerID.setAttribute("new_filter", post_data.filter);
			layerID.setAttribute("new_other", post_data.other);
			layerID.className = "portlet"+other['class'];
			ajx.post_data = post_data;
			ajx.layerID = layerID;
			if (_DEBUG == 1) {			
				ajx.call('/soap.php?action=applyportletsetting&debug=1',  '_handle_applyportletsetting_result');			
			} else {
				ajx.call('/soap.php?action=applyportletsetting',  '_handle_applyportletsetting_result');			
			}
		}
		return false;
	}
	function _handle_applyportletsetting_result (result, json_data, layerID) {
		window.DISABLE_MOVE = false;
		if (result) {
			var obj = JSON.parse(json_data);
	//			window.prompt("aaa",obj.data);
			if (obj.result == 'success') {
				layerID.innerHTML = obj.data;
				
				var editPortlets = fc(layerID, 'a', null, 'editportlet', true);
				editPortlets.onclick = editPortlets_onclick.bind(editPortlets);

				var removePortlets = fc(document, 'a', null, 'removeportlet', true);
				removePortlets.onclick = removePortlets_onclick.bind(removePortlets);

				var exportPortlet = fc(document, 'a', null, 'exportportlet', true);
				exportPortlet.onclick = exportPortlet_onclick.bind(exportPortlet);
				window.location.refresh();

			} else {
				layerID.innerHTML = 'Error';
			}
		}
		return false;
	}	
		
	//[<a href="javascript:removeThisSettng('basic','{$key}');">x</a>]
	function removeThisSettng(scope, key) {
			var node = fc(document, "div", null, scope+"-"+key, true);
			
			if (node) {
				rn(node);
			}		
	//		var p = fp(this, 'fieldset', null, scope);
	//		if (p) {
	//			alert(p);
	//			alert(scope+"-"+key);
	//
	//		}
	}
	function addMore(display_application_list, scope) {
	//		alert("layerID");
	//		var display_application_list = fc(document, "div", null, "display_application_list", true);
		if (display_application_list) {		
			if (scope == "filter") {
				var inputs = fc(display_application_list, "div", null, "add_filter", true);
	//				var fieldName = window.prompt("Please Enter the name of filter", "");
				var fieldName = ge('addfilter').value;
				if (fieldName != "" && fieldName != "null" && fieldName != null) {
					var fieldset = fc(display_application_list, "fieldset", null, scope, true);
					var check = fc(fieldset, "input", {type:"text", name:fieldName}, null, true);
					if (check)	{
						alert("Name is already exists");
						return false;					
					}
					var content ='<div><table cellpadding="0" cellspacing="0"><tr><td style="width:100px;font-weight:bold;">'+fieldName+'</td><td><input type="text" name="'+fieldName+'" value=""></td></tr></table></div>';
					var a = cex("div", {innerHTML: content});
					ib(a,inputs);
				}
			} else if (scope == "basic") {
				var inputs = fc(display_application_list, "div", null, "add_variable", true);				
	//				var fieldName = window.prompt("Please Enter the name of Variable", "");
				var fieldName = ge('addvariable').value;
				if (fieldName != "" && fieldName != "null" && fieldName != null) {
					var fieldset = fc(display_application_list, "fieldset", null, scope, true);
					var check = fc(fieldset, "input", {type:"text", name:fieldName}, null, true);
					if (check)	{
						alert("Name is already exists");
						return false;					
					}
					var content ='<div><table cellpadding="0" cellspacing="0"><tr><td style="width:100px;font-weight:bold;">'+fieldName+'</td><td><input type="text" name="'+fieldName+'" value=""></td></tr></table></div>';
					var a = cex("div", {innerHTML: content});
					ib(a,inputs);
				}				
			} else if (scope == "style"){			
				var inputs = fc(display_application_list, "div", null, "add_style", true);
	//				var fieldName = window.prompt("Please Enter the name of style", "");
				var fieldName = ge('addstyle').value;
				if (fieldName != "" && fieldName != "null" && fieldName != null) {
					var fieldset = fc(display_application_list, "fieldset", null, scope, true);
					var check = fc(fieldset, "input", {type:"text", name:fieldName}, null, true);
					if (check)	{
						alert("Name is already exists");
						return false;					
					}
					var content ='<div><table cellpadding="0" cellspacing="0"><tr><td style="width:100px;font-weight:bold;">'+fieldName+'</td><td><input type="text" name="'+fieldName+'" value=""></td></tr></table></div>';
					var a = cex("div", {innerHTML: content});
					ib(a,inputs);
				}			
			}
		}
		return false;
	}
	
	
	var Portal = {
		portlet_container:null,
		onclick_add_row: function() {
			var table = fp(this, "table", null, null);
			var tr = fc (table, "tr", null, null, true);
			
			var new_tr 		= tr.cloneNode(true);			
			var item_divs 	= fc (new_tr, "div", null, "item_div");
			
			for (var i=0; i<item_divs.length; i++) {
				rcFromNode(item_divs[i]);
//				item_divs[i].innerHTML = "Drop Here";
			}
			
			// Remove other level of table
			var tables 	= fc (new_tr, "table", null, null);
			for (var i=0; i<tables.length; i++) {
				var item_div = cex("DIV", {className:'item_div'});
				rc(item_div,tables[i]);
			}
			
			// Append the result //
			ia(new_tr,tr);

			for (var i=0; i<item_divs.length; i++) {
				j(item_divs[i]).Sortable(
					{
						accept: 'page-item',
						opacity: 0.8,
						helperclass: 'helper'
					}
				);
			}
			//j(document).scrollTo( new_tr, 800 );
		},
		init: function() {
			this.portlet_container = fc(document, 'div', null, "portlet_container", true);
			this.tds = fc(this.portlet_container, "td", null, "layout_td");
			
			var setting_html = "[<a href='javascript:void(0);' class='add_row'>+</a>]&nbsp;[<a href='javascript:void(0);' class='remove_row'>-</a>]";
			for (var i=0; i<this.tds.length; i++) {
				var setting = cex("DIV", {name:'row_setting_div', innerHTML: setting_html, className:'row_setting_div'});
				var add_row = fc (setting, "a", null, "add_row",true);
				add_row.onclick = this.onclick_add_row;
				var remove_row = fc (setting, "a", null, "remove_row",true);
				remove_row.onclick = function() {
					alert("remove_row");
				}				
				//ac( this.tds[i], setting);
				ib(setting,this.tds[i].firstChild);
			}
			
			this.divs = fc(this.portlet_container, "div", null, "item_div");
			for (var i=0; i<this.divs.length; i++) {
				j(this.divs[i]).Sortable(
					{
						accept: 'page-item',
						opacity: 0.8,
						helperclass: 'helper'
					}
				);				
			}
		},
		
		save: function() {
			var content_div = this.portlet_container.cloneNode(true);
			
			var row_setting_divs = fc(content_div, 'div', null, "row_setting_div", false);
			for(var i=0; i<row_setting_divs.length; i++) {
				rn(row_setting_divs[i]);
			}			
			var portlets = fc(content_div, 'div', {'type':'portlet'}, null, false);
			for(var i=0; i<portlets.length; i++) {
				var a = cex('div', {innerHTML: ("{"+portlets[i].getAttribute("portletid")+"}") });
				rc(a,portlets[i]);
			}
			//alert(content_div.innerHTML);
			
			return content_div.innerHTML;
		}
	}
	
	Portal.init();
}


// Some global variable
var bloggingday = {};
bloggingday.portlet = {};
window._controller = new Array();
