/*
    ApplicationState = function(stateData, bookmarkValue){
      this.stateData = stateData;
      this.changeUrl = bookmarkValue || false;
    }

    dojo.extend(ApplicationState, {
      back: function(){
        alert('forward:'.this.stateData);
      },
      forward: function(){
        alert('forward:'.this.stateData);
      }
    });

    dojo.addOnLoad(function(){
      var appState = new ApplicationState("test", "test");
      dojo.back.setInitialState(appState);
    });
*/

function initialize()
{
	// execute module onload function.
	try
	{
		//dhtml 
		dhtmlHistory.initialize();
		dhtmlHistory.addListener(historyChange);

		Nifty("div.module_tool_button","small transparent");
		Nifty("div.module_function_button","small transparent");
    
    successIcon= new Image();
    successIcon.src = IMGS_DIR+'/icons/success.gif';

		eval(MODULE_NAME+'()');
	}
	catch(e)
	{
		//show_string(e.toString());
	}
		
	/*
	if (navigator.appName != "Microsoft Internet Explorer")
	{
		alert("Ie only! sorry.");
		//window.location.href = BASE_URL+'&event=onlyIe';
		//return;
	}
	*/
}

function historyChange(newLocation, historyData)
{
	//$('debug').innerHTML = Math.random()+newLocation+'-'+historyData;
	if (historyData == null)
	{
		//window.location.reload(true);
		return false;
	}
	else
	{
		/*
		var url = window.location.href;
		var historyId = url.substring(url.indexOf('#')+1, url.length);
		$('debug').innerHTML = historyStorage.get(historyId);
	*/
		if (/^http:\/\//.test(historyData))
		{
			window.location.href = historyData;
		}
		else
		{
			uncoverWithIframe();
			var historyDataArray = historyData.split('|');
			
			var functionName = historyDataArray[0];
			var functionArgs = '';
			for(var i = 1; i < historyDataArray.length;i++)
			{
				functionArgs += '\''+ historyDataArray[i] + '\',';
			}
			functionArgs = functionArgs.substring(0, functionArgs.length-1);
			eval(functionName+'('+functionArgs+')');
		}
	}
}

function hideElement(id)
{
	var objectRef = document.getElementById(id);
	if (objectRef)
	{
		objectRef.style.display = 'none';
	}	
}

function showElement(id)
{
	var objectRef = document.getElementById(id);
	if (objectRef)
	{
		objectRef.style.display = '';
	}		
}

function redirectParentPage()
{
	var redirectURLObj = document.getElementById('redirect_url');	
	var redirectURL = redirectURLObj.value;
	parent.window.document.location.href = redirectURL;
}

function refreshPage()
{
	if (document.getElementById('change_success'))
	{
    refresh();
	}
}

function refresh()
{
  var args = refresh.arguments;
  if (args.length>0){
    window.location.href = args[0];
    return true;
  }

  var url = window.location.href;
  if (/#/.test(url))
    var url = url.substring(0, url.indexOf('#'));
  if (/rdn/.test(url))
    var url = url.substring(0, url.indexOf('rdn')-1);
  var randomNum = Math.floor(Math.random()*11);
  if (!/\?/.test(url)){
    if (/[\w]$/.test(url))
      var url = url+'/?rdn='+randomNum;
    else
      var url = url+'?rdn='+randomNum;
  }else{
    var url = url+'&rdn='+randomNum;
  }
/*
  if (url.indexOf('index.php') == -1)
  {
    url = url.replace(/[\?#]/, '');
    url = url+MODULE_NAME+'/index.php?';
  }
*/
	window.location.href = url;
}

function changeBgcolor(Obj, color)
{
	if (Obj)
	{
		Obj.style.backgroundColor = color;
	}
}

function searchArray(arr, toFind)
{
	if(arr.constructor != Array)
		return false;

	for(var i = 0, len = arr.length; i < len; i++)
	{
		if(arr[i].constructor == Array)
		{
			if (searchArray(arr[i], toFind) )
				return true;
		}
		else if(arr[i] == toFind)
		{
			return true;
		}
	}
	return false;
}

function findElement(elementObj, tagName)
{
	if (elementObj.parentNode.tagName == tagName)
		return elementObj.parentNode;
	else
		return findElement(elementObj.parentNode, tagName);
}

function getFormElementByName(formObj, elementName)
{
	var formElements = Form.getElements(formObj);

	for(var i = 0; i < formElements.length; i++)
	{
		if (formElements[i].name == elementName)
		{
			return formElements[i];
		}
	}

}

function submitForm()
{	
	var args = submitForm.arguments;
	var clickElementObj = args[0];
	var updateElementId = args[1];
  
  refreshFunction = "";
  if (args.length >= 3)
  	var refreshFunction = args[2];

	var isDisableObj = false;
	if (args.length == 4)
		isDisableObj = args[3];

  var isCleanInput = false;
	if (args.length == 5)
		isCleanInput = args[4];
	
	if (isDisableObj)
		clickElementObj.disabled = true;

	var formObj = findElement(clickElementObj, 'FORM');
	var showWarningCounter = 0;
	var pars= Form.serialize(formObj);

	//for fckeditor.	
	var iframes = formObj.getElementsByTagName('IFRAME');
	var iframeNum = iframes.length;
	for(var i = 0; i < iframeNum;i++)
	{
		var iframeId = iframes[i].id;
		if (iframeId.indexOf('___Frame') != -1)
		{
			var fckeditorInputId = iframeId.replace(/___Frame/i, '');
			var oEditor = FCKeditorAPI.GetInstance(fckeditorInputId);
			var acontent=oEditor.GetXHTML();
			pars += '&'+fckeditorInputId+'='+encodeURIComponent(acontent);

			break;
		}
	}
				
	var inputElements = pars.split('&');
	for (var i = 0; i < inputElements.length; i++)
	{
		var inputElement = inputElements[i].split('=');
		var elementName= inputElement[0];
		var elementValue= inputElement[1];
		
		var matchString = elementName.match(/^_([a-zA-Z0-9]+)_/g);
		if (matchString != null)
		{
			var isShowWarning = false;
			var reqType = elementName.substr(matchString.index + 1, matchString.lastIndex - 2);
			if (reqType.match(/^[\d]+$/) != null)
			{
				//request with length			
				if (elementValue.length < parseInt(reqType))
				{
					isShowWarning = true;
				}
			}
			else if (reqType == 'reqone')
			{
				//don't delete this code.
				/*
				var emptyInputCounter = 0;
				var reqsId = decodeURIComponent(elementValue);
				var inputsId = reqsId.split('|');

				for (var j =0; j < inputsId.length; j++)
				{
					inputId = inputsId[j];

					//inputValue = $F(inputId);
					var inputObj = getFormElementByName(formObj, inputId);
					var inputValue = inputObj.value;
					if (inputObj.type == 'checkbox')
					{
						if (!inputObj.checked)
						{
							emptyInputCounter++;
						}
					}
					else
					{
						if (inputValue)
						{
							if (inputValue.length == 0)
							{
								emptyInputCounter++;
							}
						}
					}
				}

				if (emptyInputCounter == inputsId.length)
				{
					showWarningCounter++;
					for (var j =0; j < inputsId.length; j++)
					{
						inputId = inputsId[j];
						inputObj = $(inputId);
						inputWarningId = decodeURIComponent('warning_' + inputId).replace('[]', '');
						
						if (typeof inputObj.isWarningAssign == 'undefined')
						{						
							new Insertion.After(inputObj, '<span id="' + inputWarningId + '" style="background-color:red;width:4px;"></span>');
							inputObj.isWarningAssign = true;
						}
						else
						{
							$(inputWarningId).style.backgroundColor='red';
						}
					}
				}
				else
				{
					for (var j =0; j < inputsId.length; j++)
					{
						inputId = inputsId[j];
						inputObj = $(inputId);
						inputWarningId = decodeURIComponent('warning_' + inputId).replace('[]', '');

						if (typeof inputObj.isWarningAssign != 'undefined')
						{
							var inputWarningObj = $(inputWarningId);
							inputWarningObj.style.backgroundColor = '';
							inputObj.isWarningAssign = undefined;
						}
					}
				}
				*/
			}
			else
			{
				//normal request
				if (elementValue.length == 0)
				{
					isShowWarning = true;
				}				
			}
			
			var inputElementObj = getFormElementByName(formObj, elementName);
			var inputElementWarningId = elementName + 'warning';
			if (isShowWarning)
			{
				showWarningCounter++;
				if (typeof inputElementObj.isWarningAssign == 'undefined')
				{
					new Insertion.Before(inputElementObj, '<span id="' + inputElementWarningId + '" style="color:red;font-size:11pt">*</span>');
					inputElementObj.isWarningAssign = true;
				}
    		clickElementObj.disabled = false;
			}
			else
			{
				if (typeof inputElementObj.isWarningAssign != 'undefined')
				{
					$(inputElementWarningId).innerHTML = '';
					inputElementObj.isWarningAssign = undefined;
				}				
			}
			//replace name of element to original name.
			inputElements[i] = inputElements[i].replace(/^_([a-zA-Z0-9]+)_/g,'');
		}
	}
	if (showWarningCounter == 0)
	{
		var newPars = inputElements.join('&');
		var actionUrl = formObj.action;
		
		if (/=SearchForum$/.test(actionUrl))
		{
			dhtmlHistory.add('search_forum', 'postHistoryData|%s|%s|%s'.sprintf(actionUrl, newPars, updateElementId));
		}

		advAJAX.post({
			url: actionUrl,
			queryString : newPars,
			onSuccess : function(obj) 
			{
				try
				{
					$(updateElementId).innerHTML = obj.responseText;
					if (/verify_spam_error/.test(obj.responseText))
						clickElementObj.disabled = false;

					if (obj.responseText.indexOf('change_success')==-1)
						clickElementObj.disabled = false;
						
					if (refreshFunction.length > 0)
					{
						if (refreshFunction == 'debug')
							show_string(obj.responseText);
						else if (obj.responseText.indexOf('change_success')>=0)
							eval(refreshFunction);
            else if (refreshFunction != 'refresh()')
							eval(refreshFunction);
					}
					
					if (isCleanInput)
						formObj.message.value='';
				}
        catch(e)
				{
					show_string(e.toString());
					show_string(obj.responseText); 
				}

			},
			onLoading: function()
			{
        if (!document.getElementById('submit_loading_image'))
  				Insertion.After(clickElementObj, '<img id="submit_loading_image" src="/imgs/system_imgs/icons/ajax-loader.gif">');
        else
				  Element.show('submit_loading_image');
			},
			onComplete:function()
			{
				Element.hide('submit_loading_image');
			}
		});

/*
		var ajax = new Ajax.Updater(
			{success: function(obj)
				{
				try
				{
					$(updateElementId).innerHTML = obj.responseText;

					if (refreshFunction.length > 0)
					{
						if (refreshFunction == 'debug')
							show_string(obj.responseText);
						else
							eval(refreshFunction);
					}
				} catch(e)
				{
					show_string(e.toString());
					show_string(obj.responseText); 
				}
				}
			},
			actionUrl,
			{method: 'post', parameters: queryString});
*/
		//clickElementObj.disabled = true;
		return true;
	}
	else
	{
		return null;
	}
}

function postHistoryData(url, queryString, updateElementId)
{
	advAJAX.post({
		url: url,
		queryString : queryString,
		onSuccess : function(obj) 
		{ 
			$(updateElementId).innerHTML = obj.responseText;
		},
		onLoading: loading,
		onComplete:complete
	});
}

function loading()
{
	var divObj = $('loading');
	if (divObj)
	{
		divObj.style.display = '';
    divObj.style.top = document.body.scrollTop;
	}
}

function complete()
{
	var divObj = $('loading');
	if (divObj)
	{
		divObj.style.display = 'none';
	}
}

function showStringToTop(str)
{
	coverWithIframe();
	var topshowDivObj = $('topshow_div');
 	topshowDivObj.innerHTML = str;
	topshowDivObj.style.display = '';
	topshowDivObj.style.position = 'absolute';
	topshowDivObj.style.zIndex = 9;
	topshowDivObj.style.backgroundColor = 'white';
	topshowDivObj.style.border = 'blue 2px solid';
	//topshowDivObj.style.top = 2;
  topshowDivObj.style.top = document.body.scrollTop;
	topshowDivObj.style.left = (screen.width / 2) - (topshowDivObj.offsetWidth / 2);
	setTimeout('setTopDivCenter()', 200);
}

function showResultToTop()
{
  var args =  showResultToTop.arguments;
  var url = args[0];

	var isDebugMode = false;
	if (args.length == 2)
	  var isDebugMode = args[1];

	try{
	advAJAX.get(
	{
		url:url,
		onSuccess: function (obj)
		{
			coverWithIframe();
			var topshowDivObj = $('topshow_div');
			if (isDebugMode)
				show_string(obj.responseText);

			topshowDivObj.innerHTML = obj.responseText;
			topshowDivObj.style.display = '';
			topshowDivObj.style.position = 'absolute';
			topshowDivObj.style.zIndex = 9;
			topshowDivObj.style.backgroundColor = 'white';
			topshowDivObj.style.border = 'blue 2px solid';
			//topshowDivObj.style.top = 2;
      topshowDivObj.style.top = document.body.scrollTop;
			topshowDivObj.style.left = (screen.width / 2) - (topshowDivObj.offsetWidth / 2);
			setTimeout('setTopDivCenter()', 200);
		},
		onLoading: loading,
		onComplete: complete
	});
	} catch(e)
	{
		show_obj(e);
	}
}

function setEmbedsDisplayValue(v)
{
  var embeds = document.getElementsByTagName('embed');
  for(var i = 0;i < embeds.length;i++)
  {
    embeds[i].style.display = v;
  }

  var iframes = document.getElementsByTagName('iframe');
  for(var i = 0;i < iframes.length;i++)
  {
    if (iframes[i].name == 'include_embed')
      iframes[i].style.display = v;
  }

}

function setTopDivCenter()
{
	var topshowDivObj = $('topshow_div');
	topshowDivObj.style.left = (screen.width / 2) - (topshowDivObj.offsetWidth / 2);
  setEmbedsDisplayValue('none');
}

function setElementToTop()
{
	var arg = setElementToTop.arguments;
	elementId = arg[0];
	
	var topshowWidth = 0;
	if (arg.length == 2)	
		topshowWidth = arg[1];

	coverWithIframe();
	var topshowDivObj = $(elementId);
	topshowDivObj.style.display = '';
	topshowDivObj.style.position = 'absolute';
	topshowDivObj.style.zIndex = 9;
	topshowDivObj.style.backgroundColor = 'white';
	topshowDivObj.style.border = 'blue 2px solid';
	//topshowDivObj.style.top = 2;
  topshowDivObj.style.top = document.body.scrollTop;

	if (topshowWidth > 0)	
		topshowDivObj.style.width = topshowWidth;
		
	topshowDivObj.style.left = (screen.width / 2) - (topshowDivObj.offsetWidth / 2);	
}

function coverWithIframe()
{
	var coverIdObj = $('cover_iframe');
	var outerDivObj = $('outer_div');
	
	hideElement('forum_topic_content');
	hideElement('flvplayer1');
	
	coverIdObj.style.display = '';
	coverIdObj.style.top = 0;
	coverIdObj.style.left   = 0;
	coverIdObj.style.width  = screen.width - 25;
	coverIdObj.style.height = outerDivObj.scrollHeight;
	coverIdObj.style.zIndex = 9;
}

function myAjaxExecute(afterExecuteFunction, url)
{
	advAJAX.get(
	{
		url: url,
		onLoading : loading,
		onSuccess : function(obj)
		{
			if (afterExecuteFunction != null)
			{
				afterExecuteFunction(obj);
			}
		},
		onComplete : complete
	});
}

function myAjaxUpdater(updateElementId, url)
{

	advAJAX.get(
	{
		url: url,
		onLoading : loading,
		onSuccess : function(obj)
		{
			$(updateElementId).innerHTML = obj.responseText;
		},
		onComplete : complete
	});

	/*
	new Ajax.Request(
		url, {
	  method: 'get',
	  onSuccess: function(transport)
		{
			$(updateElementId).innerHTML = transport.responseText;
	  },
		onLoading:loading,
		onComplete:complete
	});
	*/
}

function uncoverWithIframe()
{
	//stop auto play album
	var args = uncoverWithIframe.arguments;
	var isRefreshPage = 0;
	if (args.length>0)
	{
		isRefreshPage = args[0];
	}

	clearTimeout(autoPlayTimer);
	Element.hide('cover_iframe');
	document.getElementsByTagName('body')[0].style.overflow = '';

	//for iframe submit form.
	//要用 try ,不然去 access 到其它網站的 iframe 會有問題.
	try
	{
		var iframes = document.getElementsByTagName('iframe');
		for(var i = 0; i < iframes.length;i++)
		{
			var iframeDocument = iframes[i];
			if (iframeDocument.contentWindow.document.getElementById('change_success') || isRefreshPage)
			{
        var refreshUrl = iframeDocument.contentWindow.document.getElementById('refresh_url');
        if (refreshUrl)
      		setTimeout("refresh('"+refreshUrl.value+"');", 100);
        else
  				setTimeout("refresh();", 100);
	      break;
			}
		}
	} catch(e)
	{
	}
	
	if (document.getElementById('change_success') || isRefreshPage)
	{
    var refreshUrl = document.getElementById('refresh_url');
    if (refreshUrl)
  		setTimeout("refresh('"+refreshUrl.value+"');", 100);
    else
  		setTimeout("refresh();", 100);
	}

	var topshowDivObj = $('topshow_div');
	topshowDivObj.innerHTML = '';
	Element.hide(topshowDivObj);
	
	showElement('forum_topic_content');
	showElement('flvplayer1');
  setEmbedsDisplayValue('');
}

function isPressEnter(e)
{
	var evt = e || window.event;
   var keyCode = evt.keyCode;
   if (keyCode == 13)
   {
      return true;
   }
   else
   {
      return false;
   }
}

function listApplyUser()
{
	var url = BASE_URL+'ListApplyUser';
	showResultToTop(url);
}

function changeOriginalSize(imgUrl)
{
	window.open(imgUrl,'_blank','fullscreen=1,resizable=1, scrollbars=1');
}

function navSearchForumAndBlog(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'search_result_list'))
  	myAjaxUpdater('search_result_list',url);
}

//for user album block
function navBlockUserNewestPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUserBlockId|'+url);
    myAjaxUpdater('BlockUserBlockId', url);
  }
}
function navBlockUserTopViewPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUserBlockId|'+url);
    myAjaxUpdater('BlockUserBlockId', url);
  }
}
function navBlockUserNewestMessagePictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUserBlockId|'+url);
    myAjaxUpdater('BlockUserBlockId', url);
  }
}

function addHistory(aObj, historyData)
{
	var href = aObj.href;
	var historyId = href.substring(href.indexOf('#')+1, href.length);

	historyStorage.put(historyId, historyData);
	dhtmlHistory.add(historyId, historyData);
}

//foru group album block
function navBlockGroupNewestPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockGroupBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockGroupBlockId|'+url);
  	myAjaxUpdater('BlockGroupBlockId', url);
  }
}
function navBlockGroupTopViewPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockGroupBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockGroupBlockId|'+url);
  	myAjaxUpdater('BlockGroupBlockId', url);
  }
}
function navBlockGroupNewestMessagePictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockGroupBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockGroupBlockId|'+url);
  	myAjaxUpdater('BlockGroupBlockId', url);
  }
}

//users picture.
function navBlockUsersNewestPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUsersBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUsersBlockId|'+url);
  	myAjaxUpdater('BlockUsersBlockId', url);
  }
}
function navBlockUsersTopViewPictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUsersBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUsersBlockId|'+url);
  	myAjaxUpdater('BlockUsersBlockId', url);
  }
}
function navBlockUsersNewestMessagePictures(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUsersBlockId'))
  {
  	addHistory(aObj, 'myAjaxUpdater|BlockUsersBlockId|'+url);
  	myAjaxUpdater('BlockUsersBlockId', url);
  }
}

function navBlockUserGroupsOrFriendsForumTagTopic(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_user_groups_or_friends_forum_tag_topic'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_user_groups_or_friends_forum_tag_topic|'+url);
  	myAjaxUpdater('block_user_groups_or_friends_forum_tag_topic', url);
  }
}

function navGoToInputPage(elementObj, url, evt, updateId)
{
  if (elementObj.nodeName.toLowerCase() == 'input')
  {
    if(evt.keyCode == 13)
    {
      url += '&cur_page='+elementObj.value;
/*
      if (url.indexOf('use_ajax=1') == -1)
        window.location.href = url;
      else
*/
   	  myAjaxUpdater(updateId, url);
    }
    return true;
  }
  else
  {
    return false;
  }
}

function navBlockForumTagTopic(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_forum_tag_topics'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_forum_tag_topics|'+url);
  	myAjaxUpdater('block_forum_tag_topics', url);
  }
}

function search()
{
	var clickElementObj = search.arguments[0];
	var formObj = findElement(clickElementObj, 'FORM');
	formObj.submit();
}

function showHideCategoryObjects(spanObj, objectSpanId)
{
  if (spanObj.innerHTML.indexOf(lang['symbo_down'])>0)
  {
    spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_down'], lang['symbo_up']);
    Element.show(objectSpanId);
  }
  else
  {
    spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_up'], lang['symbo_down']);
    Element.hide(objectSpanId);
  }
}

function showHideAllCategoryObjects(spanObj, objId)
{
  if (spanObj.innerHTML.indexOf(lang['symbo_down'])>0)
  {
		spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_down'], lang['symbo_up']);
		var status = 'show';
		var symbo = '-';
  }
  else
  {
		spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_up'], lang['symbo_down']);
		var status = 'hide';
		var symbo = '+';
  }
	
	var spans = $(objId).getElementsByTagName('A');
	for(var i = 0; i < spans.length; i++)
	{
		var spanObj = spans[i];
		if (spanObj.className == 'objects_expand')
		{
			if (status == 'show')
				spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_down'], lang['symbo_up']);
			else if (status == 'hide')
				spanObj.innerHTML = spanObj.innerHTML.replace(lang['symbo_up'], lang['symbo_down']);
		}
	}
		
	var divs = $(objId).getElementsByTagName('DIV');
	for(var i = 0; i < divs.length; i++)
	{
		var divObj = divs[i];

		if (/_objects$/.test(divObj.id))
		{
			if (status == 'show')
				Element.show(divObj.id);
			else
				Element.hide(divObj.id);
		}
	}
}

function openMenu(clickedLiObj, menuDivId)
{
	var liObj = $(menuDivId);
//show_obj(clickedLiObj);
	if (liObj.style.display == '')
	{
		liObj.style.display = 'none';
    var ObjectDivShim = $('div_shim');
    ObjectDivShim.style.display = 'none';
	}
	else
	{
		liObj.style.zIndex = 10;
		liObj.style.display = '';

    var ObjectDivShim = $('div_shim');
    ObjectDivShim.style.top = liObj.offsetTop;
    ObjectDivShim.style.left = liObj.offsetLeft;
    ObjectDivShim.style.width = liObj.offsetWidth;
    ObjectDivShim.style.height = liObj.offsetHeight;
    ObjectDivShim.style.zIndex = liObj.style.zIndex - 1;
    ObjectDivShim.style.display = 'block';
 
	}
}

function hideMenu(menuDivId)
{
	var liObj = $(menuDivId);
	liObj.style.display = 'none';
  var ObjectDivShim = $('div_shim');
  ObjectDivShim.style.display = 'none';
}

function monitorUploadStatus(iframeName, showUploadInfoId)
{
	var iframeObj = getIframeElement(iframeName);
	if (!iframeObj)
		return;
  try{
  	var iframeDocument = iframeObj.contentWindow.document;
  } catch(e)
  {
    return;
  }
	var filenameSpanObj = iframeDocument.getElementById('upload_file_name');
	var uiObj = iframeDocument.getElementById('UPLOAD_IDENTIFIER');
  if (uiObj != null)
  {
    advAJAX.get(
    {
      url:'/idpd.php?fn=up_info&user_id='+USER_ID,

      onSuccess: function (obj)
      {
				eval('var uploadStatus = '+Trim(obj.responseText));
				if (uploadStatus)
				{
					var downloadPercent = parseInt((uploadStatus['bytes_uploaded']/uploadStatus['bytes_total']) * 100);
					var processbarWidth = downloadPercent * 2;

					var otherMessage = '<div style="border:1px solid green;padding:2px">&nbsp;%s:<span style="font-weight:900">%s KB</span> &nbsp;%s <span style="font-weight:900">%s</span> %s&nbsp;</div>'.sprintf(lang['upload_speed'], parseInt(uploadStatus['speed_last']/1024), lang['estimate_require'], uploadStatus['est_sec'], lang['second']);
					$(showUploadInfoId).innerHTML = otherMessage;
					if (downloadPercent > 20)
					{
						filenameSpanObj.innerHTML = '<span style="width:%s;background-color:red;font-size:12px;display:block">%s</span>'.sprintf(processbarWidth, downloadPercent+'%');
					}
					else
					{
						filenameSpanObj.innerHTML = '<span style="width:%s;background-color:red;display:block">&nbsp;</span>'.sprintf(processbarWidth+'%');
					}
				}
	
        setTimeout('monitorUploadStatus(\''+iframeName+'\', \''+showUploadInfoId+'\')', 1000);
      }
    });
  }
  else
  {
    CUR_IFRAME_NUMBER += 1;
    $(showUploadInfoId).innerHTML = '';
    submitFileUploadForm(CUR_IFRAME_NUMBER, showUploadInfoId);
  }
}

function getFormElement(fromObj, searchFormName)
{
	var forms = fromObj.getElementsByTagName('FORM');
	//show_obj(forms);
	for(var i = 0; i < forms.length; i++)
	{
		if (forms[i].name == searchFormName)
		{
			return forms[i];
		}
	}
	return false;
}

function getIframeElement(searchIframeName)
{
	var iframes = document.getElementsByTagName('IFRAME');
	for(var i = 0; i < iframes.length; i++)
	{
		if (iframes[i].name == searchIframeName)
		{
			return iframes[i];
		}
	}
	return false;
}

function debug(msg)
{
  var debugObj = $('debug');
	debugObj.innerHTML = Math.random()+':'+msg;
  debugObj.style.display = '';
  debugObj.style.top = document.body.scrollTop;	
}

function icon(iconName)
{
  return '<img src="/imgs/system_imgs/icons/%s" align="absmiddle" border="0">'.sprintf(iconName);
}

var autoPlayTimer = 0;
function stopAutoPlay(aObj, autoPlayType)
{
	clearTimeout(autoPlayTimer);
	if (autoPlayType =='prev_auto_play')
		aObj.innerHTML = '&nbsp;'+icon('album_prev_play.gif')+lang['play_prev']+'&nbsp;';

	if (autoPlayType =='next_auto_play')
		aObj.innerHTML = '&nbsp;'+icon('album_next_play.gif')+lang['play_next']+'&nbsp;';
	aObj.onclick = function anonymous(){autoPlayAlbum(autoPlayType);};
}

function autoTimeoutPlayAlbum(objId)
{
	var obj = $(objId);
	if (obj)
	{
		var url = $(objId).value;
		autoPlayTimer = setTimeout("showResultToTop('"+url+"')", 3000);
	}
}

function autoPlayAlbum(objId)
{
	var obj = $(objId);
	if (obj)
	{
		var url = $(objId).value;
		showResultToTop(url);
	}
}
/*
function showUserSelfFunction(tdObj, divId)
{
	Element.show(divId);
	return;
	var moreLeft = 0;
	if (screen.width>1024)
		moreLeft = ((screen.width-1024)/2);
	var divObj = $(divId);
	divObj.style.left = tdObj.offsetLeft+moreLeft+18;
	divObj.style.top = tdObj.offsetHeight+1;
	divObj.style.display = '';
}
*/

function middleImageOnloadEvent(listPictureType, currentPageNum)
{
	var listPictureType = listPictureType.replace(/NewestPictures$|TopViewPictures$|NewestMessagePictures$/g, "");
	var blockNavId = listPictureType+'Nav';
	var blockImagesId = listPictureType+'BlockId';
  if (document.getElementById(blockNavId))
  {	
    var aObj = $(blockNavId).getElementsByTagName('A')[0];
    var aOnclick = aObj.onclick.toString();

    var m = aOnclick.match(/['"].*['"]/g);

    var aOnclickUrl = m[0].substring(1, m[0].length-1);
    var newAOnclickUrl = aOnclickUrl.replace(/[\d]+$/, currentPageNum);
    //show_string(newAOnclickUrl);
    if (currentPageNum>0)
      myAjaxUpdater(blockImagesId, newAOnclickUrl);
  }
}

//video
function navBlockGouVideo(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_gou_video'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_gou_video|'+url);
  	myAjaxUpdater('block_gou_video', url);
  }
}
function navBlockGouVideoTopView(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_gou_video'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_gou_video|'+url);
  	myAjaxUpdater('block_gou_video', url);
  }
}
function navBlockGroupMemberVideo(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_member_video'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_member_video|'+url);
  	myAjaxUpdater('block_member_video', url);
  }
}

function navBlockGroupMemberVideoTopView(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_member_video'))
  {
  	addHistory(aObj, 'myAjaxUpdater|block_member_video|'+url);
  	myAjaxUpdater('block_member_video', url);	
  }
}

function addHistoryRequest(aObj, id, url)
{
	addHistory(aObj, 'myAjaxUpdater|'+id+'|'+url);
	myAjaxUpdater(id, url);	
}

function setWindowLocation(url)
{
	window.location.href=url;
}

/* use this function input element must have id */
var PREV_Q_STRING = '';
var USER_LIST_CURSOR = 0;
var USERS = new Array();
function searchUser(e, inputObject, userListLi, userListDiv, addType, acoSectionValue)
{
  var evt = e || window.event;
	var keyCode = evt.keyCode;
	//esc
	if (keyCode == 27)
	{
		Element.hide(userListLi);
	}
  if ((keyCode == 38) || (keyCode == 40))
  {
		if ((USER_LIST_CURSOR>0) && (USER_LIST_CURSOR <= USERS.length))
  	  $('tr_'+USER_LIST_CURSOR).style.backgroundColor='';
  }

	//enter
	if (keyCode == 13)
	{
		if ($(userListLi).visible())
		{
			var currentSelectedUser = $('td_'+USER_LIST_CURSOR).innerHTML;
			inputObject.value = currentSelectedUser;
		}
		else
		{
      if (acoSectionValue == 'wm'){
        if ((inputObject.value == 'anonymous') || (inputObject.value == 'amalay_member')){
          alert("You can't add anonymous and amalay_member user.");
          inputObject.value = '';
          return false;
        }
      }
			if (addType == 'add_aro_group_object'){
				submitForm(inputObject, 'rmsg','');
				inputObject.value = '';
			}
			else{
				addAroObject(e, inputObject);
				inputObject.value = '';				
			}
		}
	}

	//up
	if (keyCode == 38)
	{
		USER_LIST_CURSOR--;
	}
	//down
	if (keyCode == 40)
	{
		USER_LIST_CURSOR++;
	}

	if (USER_LIST_CURSOR>USERS.length)
		USER_LIST_CURSOR = 1;
	if (USER_LIST_CURSOR<1)
		USER_LIST_CURSOR = USERS.length;

	if ((keyCode == 38) || (keyCode == 40))
	{
		$('tr_'+USER_LIST_CURSOR).style.backgroundColor='#dee3e7';
		return;
	}

	var inputValue = inputObject.value;
	if (inputValue.length>0)
	{
		var searchPtn = inputValue.substring(0, inputValue.length - 1);
		if (searchPtn.length<3){
      Element.hide(userListLi);
			return false;
    }
		if (keyCode == 32)
		{
			if (searchPtn == PREV_Q_STRING)
			{
				Element.show(userListLi);
				return false;
			}
			else
				PREV_Q_STRING = searchPtn;

			myAjaxExecute(
			function (rspObj)
			{
				USERS = eval(rspObj.responseText);
				var userLists = '<table cellspacing="1" cellpadding="1">';
				var j = 1;
				for(var i=0; i<USERS.length;i++)
				{
					userLists += '<tr id="tr_'+j+'" onmouseover="this.style.backgroundColor=\'#dee3e7\';" onmouseout="this.style.backgroundColor=\'\';"><td id="td_'+j+'" onclick="useTdValue(this, '+inputObject.id+', '+userListLi+');">%s</td></tr>'.sprintf(USERS[i]);
					j++;
				}
				userLists += '</table>';
				$(userListDiv).innerHTML = userLists;
				Element.show(userListLi);
			}	
			,BASE_URL+'SearchUser/?user='+searchPtn);
		}
		else
		{
			Element.hide(userListLi);
		}
	}
}

function useTdValue(tdObj, inputId, userListLiId)
{
	$(inputId).value = tdObj.innerHTML;
	Element.hide(userListLiId);
}

function isConfirmAction(aObj)
{
	var cfm = lang['confirm'];
	var cfmPos = aObj.innerHTML.indexOf(cfm);
	if (cfmPos == -1)
		return false;
	else
		return true;
}

function editPicture(PictureId, picture_type)
{
  var url = '/album/EditPicture/?picture_id=' + PictureId;
  showResultToTop(url);
}

function editPictureMessage(albumId, pictureId, apmId, updateElementId, realDomainName)
{
  var url = 'http://%s/album/EditPictureMessage/?album_id=%s&picture_id=%s&apm_id=%s&real_domain_name=%s'.sprintf(ENTER_DOMAIN_NAME, albumId,pictureId, apmId, realDomainName);
  myAjaxUpdater(apmId, url);
}

function deletePictureMessage(albumId, pictureId, apmId, updateElementId, realDomainName)
{
  var url = 'http://%s/album/DeletePictureMessage/?album_id=%s&picture_id=%s&apm_id=%s&real_domain_name=%s'.sprintf(ENTER_DOMAIN_NAME, albumId, pictureId, apmId, realDomainName);
  myAjaxUpdater(updateElementId, url);
}

function saveUserScreen()
{
  var w = screen.width;
  var h = screen.height;
  var browser=navigator.appName;
  var b_version=navigator.appVersion;

  var url = BASE_URL + 'SaveUserScreen/?w=%s&h=%s&b=%s&bv=%s'.sprintf(w, h, encodeURI(browser), encodeURI(b_version));
  myAjaxExecute(null, url);   
}

function downUpDateMenu(elementId,clickedObj)
{
	Element.toggle(elementId);
	if (clickedObj.innerHTML.indexOf(lang['symbo_down']) != -1)
	{
		clickedObj.innerHTML = clickedObj.innerHTML.replace(lang['symbo_down'], lang['symbo_up']);
	}
	else
	{
		clickedObj.innerHTML = clickedObj.innerHTML.replace(lang['symbo_up'], lang['symbo_down']);
	}
}

/* start FriendlyGroupsAndUser */
function navBlockUserGroupsAlbum(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserGroupsAlbum'))
  {
  	addHistory(aObj,'myAjaxUpdater|BlockUserGroupsAlbum|'+url);
  	myAjaxUpdater('BlockUserGroupsAlbum', url);
  }
}

function navBlockUserFriendsAlbum(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserFriendsAlbum'))
  {
	  addHistory(aObj,'myAjaxUpdater|BlockUserFriendsAlbum|'+url);
  	myAjaxUpdater('BlockUserFriendsAlbum', url);
  }
}

function navBlockUserGroupsVideo(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserGroupsVideo'))
  {
  	addHistory(aObj,'myAjaxUpdater|BlockUserGroupsVideo|'+url);
  	myAjaxUpdater('BlockUserGroupsVideo', url);
  }
}

function navBlockUserFriendsVideo(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserFriendsVideo'))
  {
  	addHistory(aObj,'myAjaxUpdater|BlockUserFriendsVideo|'+url);
  	myAjaxUpdater('BlockUserFriendsVideo', url);		
  }
}

function navBlockUserGroupsForumTopic(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserGroupsForumTopic'))
  {
  	addHistory(aObj,'myAjaxUpdater|BlockUserGroupsForumTopic|'+url);
  	myAjaxUpdater('BlockUserGroupsForumTopic', url);
  }
}

function navBlockUserFriendsForumTopic(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'BlockUserFriendsForumTopic'))
  {
  	addHistory(aObj,'myAjaxUpdater|BlockUserFriendsForumTopic|'+url);
  	myAjaxUpdater('BlockUserFriendsForumTopic', url);
  }
}

function addUserDefineBlock(clickObj, divId)
{
	try
	{		
		formObj = findElement(clickObj, 'FORM');
		
		pars= Form.serialize(formObj);
		var m = pars.match(/url=([^&\n\r]+)/);
		if (m == null)
			return false;
		var url = BASE_URL + 'AddRssBlock/?'+pars;

		myAjaxExecute(
		 function (rsp)
		 {
			//alert(rsp.responseText);
			Insertion.Bottom(divId, rsp.responseText);
			uncoverWithIframe();
			initDnd();			
		 }, url);
	}
	catch(e)
	{
		show_obj(e);
	}
}

function expandRssItem(clickImageObj, portalColumn, rssItemId)
{
	var divs = $(portalColumn).getElementsByTagName('DIV');
	for(var i = 0; i < divs.length; i++)
	{
		var itemId = divs[i].id;
		
		if (/item_[\d]$/.test(itemId))
		{
			if (itemId != rssItemId)
				Element.hide(itemId);
			
			var itemObj = $(itemId+'_img');
			itemObj.src = itemObj.src.replace('collapse.gif', 'expand.gif');
		}
	}
	Element.toggle(rssItemId);
	
	if ($(rssItemId).style.display == 'none')
	{
		clickImageObj.src = clickImageObj.src.replace('collapse.gif', 'expand.gif');		
	}
	else
	{
		clickImageObj.src = clickImageObj.src.replace('expand.gif', 'collapse.gif');
	}
}

function editRssBlock(clickObj, blockDivId)
{
	formObj = findElement(clickObj, 'FORM');
	pars= Form.serialize(formObj);
	var url = BASE_URL + 'EditRssBlock/?'+pars;

	myAjaxExecute(
	 function (rsp)
	 {
		$(blockDivId).innerHTML = rsp.responseText;
		uncoverWithIframe();
		initDnd();			
	 }, url);	
}

function deleteRssBlock(clickObj, portalColumn, blockIdnr)
{
	if (clickObj.innerHTML.indexOf(lang['ask_sure_delete']) == -1)
	{
		clickObj.innerHTML = '&nbsp;'+lang['ask_sure_delete']+'&nbsp;';
		clickObj.style.color = 'red';
	}
	else
	{
		var blockDivId = 'block_'+blockIdnr;
		var url = BASE_URL+'DeleteRssBlock/?block_idnr='+blockIdnr;
		myAjaxExecute(
		function (rsp)
		{
			if (rsp.responseText == 'ok')
				Element.remove(blockDivId);
			else
				show_string(rsp.responseText);
		}, url);
	}
}

function loadAllRssBlock(portalColumn)
{
//  try
//  {
    var divs = $(portalColumn).getElementsByTagName('div');
    if (divs.length == 0)
      return;

    for(var i = 0; i < divs.length; i++)
    {
      if (divs[i].className == 'block')
      {
        var divObj = divs[i];
        var divId = divObj.id;
        var m = divId.match(/_([\d]+)$/);
        if (m){
          isUpdateContent = 0;
          inputsObj = divObj.getElementsByTagName('INPUT');
          if (inputsObj.length>0){
            if (inputsObj[0].id == 'is_update_content')
              isUpdateContent = inputsObj[0].value;

            if (isUpdateContent == 1){
              blockIdnr = m[1];
              updateFun = "updateRssBlockContent('%s', '%s', '%s')".sprintf(divId, portalColumn, blockIdnr);
              setTimeout(updateFun, 1000);
            }
          }
        }
      }
    }
//  } catch(e){
//    show_string(e.toString());
//  }
}

function updateRssBlockContent(divId, portalColumn, blockIdnr)
{
  var url = '/gportal/LoadRssContent/?block_idnr='+blockIdnr+'&gportal_column='+portalColumn+'&is_update_block=true';
   advAJAX.get(
  {
    url: url,
    onLoading : loading,
    onSuccess : function(rspObj)
    {
      $('block_'+blockIdnr).innerHTML = rspObj.responseText;
  		initDnd();
    },
    onComplete : complete
  });
}
/*
function initDndLr()
{
	var settings = {};
	try
	{
		if (IS_INITIAL_DND)
    {
  		var portalLr = new PortalLr();
  		portalLr.applySettings(settings);
    }
	}
	catch(e)
	{
		show_obj(e);
	}	
}
*/

var settings = {};
var portal;
function initDnd()
{
	try
	{
		Nifty("div.button", "small");
		Nifty("h3.handle", "small transparent top");
		if (IS_INITIAL_DND)
		{
			portal = new Portal();
			portal.applySettings(settings);
		}
	}
	catch(e)
	{
		show_obj(e);
	}
}

//for attach file
var AB_UPLOAD_IFRAME_COUNT = 1;
function addUploadIframe()
{
	var arg = addUploadIframe.arguments;
	var trId = arg[0];
	if (arg.length == 2)
		var postId = arg[1];
	else
		var postId = '';
		
	AB_UPLOAD_IFRAME_COUNT++;
	var upload_id = 'upload_iframe_'+AB_UPLOAD_IFRAME_COUNT;
  var uploadIframe = '<tr><td></td><td valign="top"><iframe id="%s" name="%s" src="%s" height="30" width="450" border="1" frameborder="no" marginheight="0" marginwidth="0" scrolling="no"></iframe></td></tr>'.sprintf(upload_id, upload_id, '/ab/GetUploadIframe/?post_id='+postId);
	new Insertion.Before(trId, uploadIframe);
}

var CUR_IFRAME_NUMBER = 1;
function submitFileUploadForm(iframeNumber, showUploadInfoId)
{
	CUR_IFRAME_NUMBER = parseInt(iframeNumber);

	var itcFormObj = getFormElement(document, 'interaction_upload_form');
	var iframeName = 'upload_iframe_'+iframeNumber;
	var iframeDocument = getIframeElement(iframeName);
	if (iframeDocument)
	{
		var iframeFormObj = getFormElement(iframeDocument.contentWindow.document, 'iframe_upload_form');
		
		var uploadFileName = iframeFormObj['upload_file'].value;
		if (uploadFileName.length>0)
		{
			setTimeout('monitorUploadStatus(\''+iframeName+'\', \''+showUploadInfoId+'\')', 3000);
			iframeFormObj.submit();
		}
	}
}

function submitMessage(e, inputObj)
{
  var evt = e || window.event;
   var keyCode = evt.keyCode;
   if ((keyCode == 13) && (!evt.shiftKey))
   {
		//var formObj = findElement(inputObj, 'FORM');
		//show_obj(formObj.is_private);
		submitForm(inputObj, 'gou_mesgs', '', false, true);
      return true;
   }
   else
   {
      return false;
   }
}

function navGetGouMessages(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'gou_mesgs'))
  	myAjaxUpdater('gou_mesgs',url);
}

function deleteGouMessage(messageIdnr, curPage)
{
	var url = BASE_URL+'DeleteGouMessage/?message_idnr='+messageIdnr+'&cur_page='+curPage;
	myAjaxUpdater('gou_mesgs',url);
}

var map = null;
var geocoder = null;
var marker;
function initGmap()
{
    if (GBrowserIsCompatible())
    {
        gmapDivObj = document.getElementById("gmap");
        gmapDivObj.style.zIndex = 10;
        map = new GMap2(gmapDivObj);
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.addMapType(G_PHYSICAL_MAP);
        map.setCenter(new GLatLng(25.007567243301995, 121.50421857833862), 8);
        geocoder = new GClientGeocoder();

    }
}

function createMarker(point,title,html)
{
    var marker = new GMarker(point, {draggable: true});

    GEvent.addListener(marker, "click", function()
    {
        marker.openInfoWindowHtml(html,{maxContent: html,maxTitle: title});
    });

    GEvent.addListener(marker, "dragend", function() {
      //marker.openInfoWindowHtml("Just bouncing along...");
      var position = marker.getPoint();
      map.panTo(new GLatLng(position.lat(), position.lng()));

      var lat = position.lat();
      var lng = position.lng();
      var form = $('add_topic');
      form['lat'].value = lat;
      form['lng'].value = lng;
    });

    return marker;
}


function findGoogleMap(inputId)
{
  if (geocoder)
  {
    var elementObj = $(inputId);
    var tagName = elementObj.tagName.toLowerCase();
    if (tagName == 'input')
      var address = elementObj.value;
    else
      var address = elementObj.innerHTML;
    geocoder.getLatLng(address,
      function(point){
        if (!point){
          alert(address + " not found");
        } else {
          if(marker) {
            map.removeOverlay(marker);
          }
          map.setCenter(point, 13);
          var title = "";

          marker = createMarker(point,title,address);
          map.addOverlay(marker);
          //marker.openInfoWindowHtml(address,{maxContent: address,maxTitle: title});
          map.setZoom(16);

          try{
            var lat = $('gp_lat').value;
            var lng = $('gp_lng').value;
            if (lat>0)
            {
              marker.setPoint(new GLatLng(lat, lng));
              map.panTo(new GLatLng(lat, lng));
            }
          } catch(e){
            
          }
        }
      });
  }
}


function translate()
{
  var args = translate.arguments;
  var clickElementObj = args[0];

  var formObj = findElement(clickElementObj, 'FORM');
  var pars= Form.serialize(formObj);

  //for fckeditor.
  var iframes = formObj.getElementsByTagName('IFRAME');
  var iframeNum = iframes.length;
  for(var i = 0; i < iframeNum;i++)
  {
    var iframeId = iframes[i].id;
    if (iframeId.indexOf('___Frame') != -1)
    {
      var fckeditorInputId = iframeId.replace(/___Frame/i, '');
      var oEditor = FCKeditorAPI.GetInstance(fckeditorInputId);
      var acontent=oEditor.GetXHTML();
      pars += '&'+fckeditorInputId+'='+encodeURIComponent(acontent);
      break;
    }
  }

  var url = BASE_URL+'Translate';
  advAJAX.post({
    url: url,
    queryString : pars,
    onSuccess : function(obj)
    {
      oEditor.EditorDocument.body.innerHTML = obj.responseText;
    },
    onLoading: loading,
    onComplete: complete
  });
}

function loadUrl(url)
{
  window.location.href=url;
}

function setBlockTransparent()
{
  setTimeout("_setBlockTransparent('uportal_blog_post')", 100);
  setTimeout("_setBlockTransparent('lr_block')", 200);
  setTimeout("_setBlockTransparent('portal-column')", 300);
}

function _setBlockTransparent(divClassName)
{
  var divs = document.getElementsByClassName(divClassName);
  for(var i = 0; i < divs.length; i++)
  {
    var div = divs[i];
    var btId = i+'_'+divClassName+'_bt';
    new Insertion.After(div, '<div id="'+btId+'" class="block_transparent"></div>');
  }

  var divs = document.getElementsByClassName(divClassName);
  for(var i = 0; i < divs.length; i++)
  {
    div = divs[i];
    var btId = i+'_'+divClassName+'_bt';
    var btObj = $(btId);

    btObj.style.width=div.offsetWidth;
    btObj.style.height=div.offsetHeight;
    btObj.style.top=findPosY(div);
    btObj.style.left=findPosX(div);
    btObj.style.display='';
    btObj.style.zIndex = -1;
  }
}

function toggleModuleCtgList()
{
  var elementId = 'module_ctg_list';
  var elementObj = $(elementId);
  if (elementObj.style.visibility != 'visible')
  {
    elementObj.style.visibility = 'visible';
    setEmbedsDisplayValue('none');
  }
  else
  {
    elementObj.style.visibility = 'hidden';
    setEmbedsDisplayValue('');
  }
}

function hideModuleCtgList()
{
  var elementId = 'module_ctg_list';
  var elementObj = $(elementId);

  elementObj.style.visibility = 'hidden';
}

function toggleElement(clickObj, toggleId)
{
  var toggleObj = $(toggleId);
  var imgs = clickObj.getElementsByTagName('img');
  var img = imgs[0];
  if (toggleObj.style.display == '')
  {
    toggleObj.style.display = 'none';
    img.src = img.src.replace('collapse.gif', 'expand.gif');
  }
  else
  {
    toggleObj.style.display = '';
    img.src = img.src.replace('expand.gif','collapse.gif');
  }
}

function navBlockUportalTopic(aObj, url, evt)
{
  var divId = 'block_uportal_topics';
  if (!navGoToInputPage(aObj, url, evt, divId))
  {
    addHistory(aObj,'myAjaxUpdater|'+divId+'|'+url);
    myAjaxUpdater(divId, url);
  }

}

function navBlockMemberAroGroupObject(aObj, url, evt)
{
  var divId = 'member_users';
  if (!navGoToInputPage(aObj, url, evt, divId))
  {
    addHistory(aObj,'myAjaxUpdater|'+divId+'|'+url);
    myAjaxUpdater(divId, url);
  }

}

function deletePicture(clickObj, picture_id, pictureType)
{
  var url = '/album/DeletePicture/?picture_id=' + picture_id;
  var askDeleteMsg = '&nbsp;'+lang['ask_sure_delete']+'&nbsp;';
  if (clickObj.innerHTML != askDeleteMsg)
  {
    clickObj.innerHTML = askDeleteMsg;
    return false;
  }

  if (pictureType = 'self_refresh')
  {
    advAJAX.get(
    {
      url: url,
      onLoading : loading,
      onSuccess : function(obj)
      {
        if (obj.responseText == "ok")
          refresh();
        else
          show_string(obj.responseText);
      },
      onComplete : complete
    });
    return;
  }
}

function navUserAllPost(aObj, url, evt)
{
  if (!navGoToInputPage(aObj, url, evt, 'block_user_all_post'))
  {
    addHistory(aObj, 'myAjaxUpdater|block_user_all_post|'+url);
    myAjaxUpdater('block_user_all_post', url);
  }
}

function selectTag(aObj)
{
  var inputs = document.getElementsByTagName('INPUT');
  for(var i = 0; i < inputs.length; i++)
  {
    if (inputs[i].name == 'tags')
    {
      var currentInputTag = inputs[i].value;
      var selectTag = aObj.innerHTML;
      selectTag = selectTag.replace(/&nbsp;/g, '');
      if (currentInputTag.length)
      {
        if (/,[ ]?$/i.test(currentInputTag))
          inputs[i].value = currentInputTag+selectTag;
        else
          inputs[i].value = currentInputTag+','+selectTag;
      }
      else
        inputs[i].value = selectTag;
        
    }
  }
}

function searchMarkTag(inputObj)
{
  var inputValue = inputObj.value;
  var pos = inputValue.lastIndexOf(',');
  if (pos >= 0)
    var lastTag = inputValue.substr(pos+1, inputValue.length);
  else
    var lastTag = inputValue;
  var tags = $('gou_tags').getElementsByTagName('A');

  if (lastTag.length > 0)
  {
    for(var i = 0; i < tags.length; i++)
    {
      tags[i].style.color = '';
    }
  }

  if (lastTag.length > 0)
  {
    for(var i = 0; i < tags.length; i++)
    {
      if (tags[i].innerHTML.indexOf(lastTag) >= 0)
      {
        tags[i].style.color = 'red';
      }
    }
  }
}

function navBlockRelateVideo(aObj, url, evt)
{
  var blockDivId = 'block_relate_video';
  if (!navGoToInputPage(aObj, url, evt, blockDivId))
  {
    addHistory(aObj, 'myAjaxUpdater|'+blockDivId+'|'+url);
    myAjaxUpdater(blockDivId, url);
  }
 
}

function navBlockRelateTopic(aObj, url, evt)
{
	var blockDivId = 'block_relate_topic';
	if (!navGoToInputPage(aObj, url, evt, blockDivId))
	{
		addHistory(aObj, 'myAjaxUpdater|'+blockDivId+'|'+url);
		myAjaxUpdater(blockDivId, url);
	}
}

function navBlockRelateAlbum(aObj, url, evt)
{
  var blockDivId = 'block_relate_album';
  if (!navGoToInputPage(aObj, url, evt, blockDivId))
  {
    addHistory(aObj, 'myAjaxUpdater|'+blockDivId+'|'+url);
    myAjaxUpdater(blockDivId, url);
  }
}

function changeFontSize(clickObj, changeId)
{
  fontSize = clickObj.value;
  changeObj = $(changeId);
  changeObj.style.fontSize = fontSize+'pt';
  divs = changeObj.getElementsByTagName('DIV');
  for(var i = 0; i < divs.length; i++){
    divObj = divs[i];
    divObj.style.fontSize = fontSize+'pt';
  }
  spans = changeObj.getElementsByTagName('SPAN');
  for(var i = 0; i < spans.length; i++){
    spanObj = spans[i];
    spanObj.style.fontSize = fontSize+'pt';
  }

}

function isConfirmDelete(clickObj)
{
  var askDeleteMsg = '&nbsp;'+lang['ask_sure_delete']+'&nbsp;';
  if (clickObj.innerHTML != askDeleteMsg)
  {
    clickObj.innerHTML = askDeleteMsg;
    return false;
  }
  else
    return true;
}

function deleteContent(clickObj, url)
{
  if (isConfirmDelete(clickObj)){
    myAjaxExecute(
    function(obj){
      if(obj.responseText=='ok'){
        refresh();
      }else{
        m = obj.responseText.match("^refresh_url=(.*)");
        if (m){
          refresh(m[1]);
        } else { 
          show_string(obj.responseText);
        }
      }
    },
    url);
  }
}

function myAjaxPostExecute(url, pars)
{
  advAJAX.post({
    url: url,
    queryString : pars,
    onSuccess : function(obj)
    {
      if(obj.responseText=='ok'){
        refresh();
      }
      else
        show_string(obj.responseText);
    },
    onLoading: loading,
    onComplete: complete
  });

}
