// JavaScript Document
$(document).ready(function() {  
	preview();
	contactsActions(); 
	cateActions(); 
	bindRemoveCateActions();
	changeCateName();  
	itemAddActions();
	itemEditActions();
	changepasswordActions();
	changenicknameActions();
	deleteItemAction();  
	itemTabActions();
	useTab(); 
	commentActions();
	settingActions();
	viewerActions();
	notifyActions(); 
	settopActions();
	plantopActions();
});

function plantopActions(){
	$('#setplandatebutton').click(function(){
		date = $.trim($('#plantopdate').val());
		if(date.length==0 || !isDate(date)){
			alert(Lang.ERROR_DATE_FORMAT);
			return;
    	} 
		
		itemid = $('#idforpalntop').val();  	
		$('#plantoploader').show();		
	 	
		$.ajax({
			type: "POST",
			url: "/ajax/setplantopdate",
			data: "itemid="+itemid+"&date="+date,
			success: function(msg){       
				//alert(msg);
				if(msg.indexOf('false')==0){  
					return;
				} 
				
				$('#plantopdatespan').html(date);
				$('#plantoploader').hide();
			},
			complete: function(xhr,status){  
				$('#setplantopbox').hide();
			}
		}); 
	});

	$('#setplantop').click(function(){
		
		issettop = $(this).attr("checked");
		enable = 'false';
		if(issettop){
			enable = 'true';
		}

		itemid = $('#idforpalntop').val();  	
		$('#plantoploader').show();		
	 	
		$.ajax({
			type: "POST",
			url: "/ajax/enableplantop",
			data: "itemid="+itemid+"&enable="+enable,
			success: function(msg){       
				if(msg.indexOf('false')==0){  
					return;
				}
				if(issettop){
					$('#setplantopbox').show();
					$('#editplantoplink').show();
				}else{
					$('#setplantopbox').hide();
					$('#editplantoplink').hide(); 
					$('#plantopdatespan').html('');
				}
			},
			complete: function(xhr,status){  
				$('#plantoploader').hide();
			}
		}); 
	 
	});
	
	$('#cancelsetplanbutton').click(function(){
		$('#setplantopbox').hide();
	});
	
	$('#editplantoplink').click(function(){
		$('#setplantopbox').show();
	});
}

function isDate(date){
	  var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;     
      var r = date.match(reg);     
      if(r==null) return false;     

	  return true;
}


function changenicknameActions(){
	$('#savenicknamebutton').click(function(){
		nickname = $.trim($('#newnicknamefield').val());
		if(nickname.length==0){
			return;
		}
		 
		$('#newnicknamefield').attr({'disabled':'disabled'});
		$('#savenicknamebutton').attr({'disabled':'disabled'});
		$('#savenicknamebutton').val(Lang.LABEL_SAVING);
		
 		$.ajax({
			type: "POST",
			url: "/ajax/changenickname",
			data: "nickname="+encodeURIComponent(nickname),
			success: function(msg){      
				if(msg.indexOf('false')==0){  
					alert(Lang.INFO_SAVE_FAIL);
				}else{
					$('#display-nickname-val').html(nickname);
					$('.display-nickname-span').show();
					$('.edit-nickname-span').hide();
				}
			},
			complete: function(xhr,status){
				$('#newnicknamefield').removeAttr('disabled');
				$('#savenicknamebutton').removeAttr('disabled');
				$('#savenicknamebutton').val(Lang.LABEL_SAVE);
			}
		});
	});
	
	$('#setusernamebutton').click(function(){
		ret = confirm(Lang.JS_SET_USERNAME_INFO);
		if(!ret){
			return;
		}
		
		text = $.trim($('#setusernamefield').val());
		if(text.length==0){
			alert(Lang.ERROR_USERNAME_EMPTY);
			return;
		}
		
		for(i=0;i<text.length;i++){
			if(!(text[i] >= 'a' && text[i] <='z')){
				alert(Lang.ERROR_USERNAME_FOMAT);
				return;
			}
		}
		
		$('#setusernamebutton').attr({'disabled':'disabled'});
		$('#setusernameloader').show();
		
		$.ajax({
			type: "POST",
			url: "/ajax/setusername",
			data: "username="+encodeURIComponent(text),
			success: function(msg){   
				if(msg.indexOf('false')==0){
					alert(Lang.INFO_SET_FAIL);
					$('#setusernamebutton').removeAttr('disabled');
				}else if(msg.indexOf('exists')==0){
					alert(Lang.INFO_USENAME_EXISTS);
					$('#setusernamebutton').removeAttr('disabled');
				}else{
					alert(Lang.INFO_SET_SUCCESS); 
				}
			},
			complete: function(xhr,status){ 
				$('#setusernameloader').hide();
			}
		});
	});
}

function changepasswordActions(){

	var oldpwdinfo = '';
	var newpwdinfo = '';
	var renewpwdinfo = '';
	
	$('#OldPassword').blur(function(){
		pwd = $(this).val();
		if(pwd.length==0){
			oldpwdinfo = Lang.ERROR_PWD_EMPTY;
		}else if(pwd.length<6||pwd.length>15){
			oldpwdinfo = Lang.ERROR_PWD_LENGTH;
		}else{
			oldpwdinfo = '';
		}
		
		$('#oldpasswordinfo').html(oldpwdinfo);
	});
	
	$('#NewPassword').blur(function(){
		pwd = $(this).val();
		if(pwd.length==0){
			newpwdinfo = Lang.ERROR_PWD_EMPTY;
		}else if(pwd.length<6||pwd.length>15){
			newpwdinfo = Lang.ERROR_PWD_LENGTH;
		}else{
			newpwdinfo = '';
		}
		
		$('#newpasswordinfo').html(newpwdinfo);
	});
	
	$('#ReNewPassword').blur(function(){
		newpwd = $('#NewPassword').val();
		pwd = $(this).val(); 
		if(pwd.length==0){
			renewpwdinfo = Lang.ERROR_PWD_EMPTY;
		}else if(pwd.length<6||pwd.length>15){
			renewpwdinfo = Lang.ERROR_PWD_LENGTH;
		}else if(pwd != newpwd){
			renewpwdinfo = Lang.ERROR_REPWD_NOTMATCH;
		}else{
			renewpwdinfo = '';
		}
		
		$('#renewpasswordinfo').html(renewpwdinfo);
	});
	
	$('#changepassworddiv input').keydown(function(){
		if(event.keyCode!=13){ 
			return;
		}
		
		oldpwd = $.trim($('#OldPassword').val());
		newpwd = $.trim($('#NewPassword').val());
		renewpwd = $.trim($('#ReNewPassword').val());
		if(oldpwd.length == 0 || newpwd.length == 0 || renewpwd.length == 0){
			return;
		}
		
		if(oldpwdinfo != '' || newpwdinfo != '' || renewpwdinfo != ''){
			return;
		}
		
		document.changePasswordForm.submit();
	});
	
	$('#changepasswordbutton').click(function(){
		if(oldpwdinfo != '' || newpwdinfo != '' || renewpwdinfo != ''){
			return;
		}
		
		oldpwd = $.trim($('#OldPassword').val());
		newpwd = $.trim($('#NewPassword').val());
		renewpwd = $.trim($('#ReNewPassword').val());
		if(oldpwd.length == 0 || newpwd.length == 0 || renewpwd.length == 0){
			
			if(oldpwd.length == 0){
				$('#oldpasswordinfo').html(Lang.ERROR_PWD_EMPTY);
			}else if(newpwd.length == 0){
				$('#newpasswordinfo').html(Lang.ERROR_PWD_EMPTY);
			}else if(renewpwd.length == 0){
				$('#renewpasswordinfo').html(Lang.ERROR_PWD_EMPTY);
			}	
		
			return;
		}

		
		document.changePasswordForm.submit();
	});
}

function settopActions(){
	var setting = false;
	var topitemsrc = '/img/topitem.png';
	var nottopitemsrc = '/img/emptytopitem.png';
	
	$('.top-icon').click(function(){ 
		if(setting){
			return;
		}
		setting = true;
		
		// get enable
		var imgelement = $(this);
		var imgsrc = $(this).attr('src');
		var enable = 'true';
		if(topitemsrc == imgsrc){
			enable = 'false';
			$(this).attr({'src':nottopitemsrc,'title':Lang.INFO_SET_TOP_TIP});
		}else{
			$(this).attr({'src':topitemsrc,'title':Lang.INFO_SET_UNTOP_TIP});
		}
		
		// get item id
		itemelement = $(imgelement).parent().parent().parent();
		itemid = $(itemelement).attr('id');
		temps = itemid.split('-');
		itemid = temps[2];
		
		$.ajax({
			type: "POST",
			url: "/ajax/settop",
			data: "itemid="+itemid+"&enable="+enable,
			success: function(msg){    
				if(msg.indexOf('false')==0){ 
					if(enable == 'false'){
						alert(Lang.ERROR_CANCEL_SETTOP_FAIL);
						$('#topitempng').attr({'src':topitemsrc});
					}else{
						alert(Lang.ERROR_SETTOP_FAIL);
						$('#topitempng').attr({'src':nottopitemsrc});
					}
				}
			},
			complete: function(xhr,status){
				setting = false;
			}
		});
	});
	
}

function notifyActions(){
	deleting = false;
	
	$('.deletenotifybutton').click(function(){  
		
		if(deleting){
			return;
		}
	
		parentelement = $(this).parent().parent();
		idstr = parentelement.attr('id'); 
		
		idstr = idstr.split('_');
		notifyid = idstr[1]; 
		
		deleting = true;
		$.ajax({
			type: "POST",
			url: "/ajax/deletenotify",
			data: "notifyid="+notifyid,
			success: function(msg){    
				if(msg.indexOf('false')!=0){
					parentelement.toggle('slow');
				}
			},
			complete: function(xhr,status){
				deleting = false;
			}
		});
	});
}

function settingActions(){

	$('#cance-edit-nickname-button').click(function(){
		$('.display-nickname-span').show();
		$('.edit-nickname-span').hide();
	});
	
	$('#editnicknamebutton').click(function(){
		$('.edit-nickname-span').show();
		$('.display-nickname-span').hide();
	});
	  
	$('#timezone').change(function(){ 
		var timezone = $(this).val();
		accountid = $('#idfortimezone').val();
		$('#timezoneloader').show();
		$('#timezone').attr({'disabled':'disabled'});
		
		$.ajax({
			type: "POST",
			url: "/ajax/settimezone",
			data: "timezone="+timezone,
			success: function(msg){   
			},
			complete: function(xhr,status){
				$('#timezoneloader').hide();
				$('#timezone').removeAttr('disabled');
			}
		});
	});
}

function deleteItemAction(){

	deleting = false;
	$('.deleteitembutton').click(function(){
		ret = confirm(Lang.CONFIRM_DELETE_ITEM);
		if(!ret){
			return;
		}
	
		itemidstr = $(this).parent().parent().parent().attr('id');
		//alert(itemidstr);
		strs = itemidstr.split('-');
		itemid = strs[2];
		//alert(itemid);
		
		if(deleting){
			return;
		} 
		deleting = true;
	
		$.ajax({			
			type: "POST",
			url: "/ajax/deleteitem",
			data: "itemid="+itemid,
			success: function(msg){     
 				if(msg.indexOf('false')!=0){
					$('#item-div-'+itemid).toggle("fast");
				}
			},
			complete: function(xhr,status){	  
				deleting = false;
			}
		});
	
	});
	
}

function htmlCoder(str){   
	var	s = "";   
    if(str.length == 0) return "";   
    for(var i = 0;i<str.length;i++){   
		switch(str.substr(i,1)){   
			case "<": s += "&lt;"; break;   
			case ">": s += "&gt;"; break;   
			case "&": s += "&amp;"; break;   
			case " ": s += "&nbsp;"; break;   
			case "\"": s += "&quot;"; break;   
			case "\n": s += "<br>";  break;   
			default : s += str.substr(i,1); break;   
		}   
	}   
	return s;   
}   

function itemAddActions(){
	$('#addcontentbutton').click(function(){
		//document.add_content_form.submit(); 
				
		var text = $('#newcontentarea').val();
		text = $.trim(text);
		if(text.length==0){
			return;
		}
		
		$(this).attr({'disabled':'disabled'});
		$('#newcontentarea').attr({'disabled':'disabled'});
		$('#newcontentloader').show();
		 
		$.ajax({
			type: "POST",
		   	url: "/ajax/addmemo",
		   	data: "content="+encodeURIComponent(text),
		   	success: function(msg){    
				//alert(msg);
				if(msg.indexOf('false')==0){  
					alert(Lang.ERROR_ADD_FAILE);
				}else{
					// success	
					$('#newitemlist').addClass('marginb5');
					$('#newitemlist').append(msg);
					$('#newitemlist > .hide:last').toggle('normal');
					$('#newcontentarea').val('');
					itemEditActions();
					deleteItemAction();
					settopActions();
					cateActions();
				}
		    },
		   	complete: function(xhr,status){	 
				$('#addcontentbutton').removeAttr('disabled');
				$('#newcontentarea').removeAttr('disabled');
				$('#newcontentloader').hide();
		   	}	
		});
	}); 
}

function itemEditActions(){  

	$('.edit-item-button').click(function(){ 
		viewspan = $(this).parent();
		editspan = $(viewspan).next();
		if($(editspan).hasClass('edit-item-title-span')
			&& $(viewspan).hasClass('view-item-title-span')){
			$(viewspan).hide();
			$(editspan).show('fast');
		}else{
			alert('search edit-item-title-span error');
		}
	});
	
	saving = false;
	$('.edit-item-title-span-cancel').click(function(){
		if(saving){
			return;
		}
		
		editspan = $(this).parent();
		viewspan = $(editspan).prev();
		if($(editspan).hasClass('edit-item-title-span')
			&& $(viewspan).hasClass('view-item-title-span')){
			$(editspan).hide();
			$(viewspan).show('fast');
		}else{
			alert('search edit-item-title-span error');
		}
	});
	
	$('.edit-item-title-span-save').click(function(){
		if(saving){
			return;
		}
	
		editarea = $(this).prev();
		editspan = $(this).parent();
		itemelement = $(editspan).parent().parent();
		if($(editarea).hasClass('edit-item-title-span-area') && $(itemelement).hasClass('itemlist-element')){

			newtitle = $.trim($(editarea).val());
			itemid = $(itemelement).attr('id');
			temps = itemid.split('-');
			itemid = temps[2];
			
			saving = true;			
			$(editarea).attr({'readonly':'readonly'});
			$(this).attr({'disabled':'disabled'});
			saveelement = this;
			$(itemelement).find('.loader-img').show();
			
			$.ajax({
				type: "POST",
				url: "/ajax/savetitle",
				data: "title="+encodeURIComponent(newtitle)+"&id="+itemid,
				success: function(msg){   
					if(msg.indexOf('false')!=0){   
						$(itemelement).find('.item-title > a').html(htmlCoder(newtitle));
						
						viewspan = editspan.prev();
						$(editspan).hide();
						viewspan.show('fast');
					}else{ 
						alert(Lang.ERROR_SAVE_TITLE_FAIL);
					}
				},
				complete: function(xhr,status){	   
					saving = false;
					$(editarea).removeAttr('readonly');
					$(saveelement).removeAttr('disabled');
					$(itemelement).find('.loader-img').hide();
				}
			});
		}else{
			alert('search edit-item-title-span-area or itemlist-element error');
		}
	});

	oldtitle = $('#title-edit-area').val();
	$('#edittitlebutton').click(function(){
		$('#title-view-span').hide();
		$('#edittitlebutton').hide();
		$('#title-edit-span').show();
		$('#title-edit-area').focus();
	});
	
	$('#cancel-edit-title-button').click(function(){
		$('#title-edit-span').hide();
		$('#title-edit-area').html(oldtitle);
		$('#title-view-span').show();
		$('#edittitlebutton').show();	
	});
	
	$('#save-title-buton').click(function(){
		$('#title-edit-span').hide();
		$('#title-view-span').show();
		
		newtitle = $.trim($('#title-edit-area').val());
		if(newtitle==oldtitle){
			return;
		}
		
		itemid = $('#itemidvalue').val();
		
		$('#edittitleloader').show();
		$.ajax({
			type: "POST",
			url: "/ajax/savetitle",
			data: "title="+encodeURIComponent(newtitle)+"&id="+itemid,
			success: function(msg){   
				if(msg.indexOf('false')!=0){   
					oldtitle = newtitle;
					$('#title-view-span').html(htmlCoder(newtitle));
				}else{ 
					alert(Lang.ERROR_SAVE_TITLE_FAIL);
				}
			},
			complete: function(xhr,status){	   
				$('#edittitleloader').hide();
				$('#edittitlebutton').show();
			}
			
		});
		
	});
	
	$('#savebutton').attr({'disabled':'disabled'});
	$('#saveandviewbutton').attr({'disabled':'disabled'});
	$('#contentarea').keydown(function(){  
		$('#saveinfo').html('');
		$('#savebutton').removeAttr('disabled');
		$('#saveandviewbutton').removeAttr('disabled');
	});
	 
	$('#savebutton').click(function(){ 
		savecontent(false);
	});
	
	$('#saveandviewbutton').click(function(){
		savecontent(true);
	});
	 
}

function savecontent(andview){
		content = $('#contentarea').val(); 
		itemid = $('#itemidvalue').val();
		
		$('#savebutton').attr({'disabled':'disabled'}); 
		$('#saveandviewbutton').attr({'disabled':'disabled'}); 
		$('#saveloader').show();
		
		//alert(itemid+'\n'+content);
		
		$.ajax({
			type: "POST",
			url: "/ajax/savecontent",
			data: "content="+encodeURIComponent(content)+"&id="+itemid,
			success: function(msg){   
				if(msg.indexOf('false')!=0){  
					$('#view').html(msg);   
					$('#saveinfo').html(Lang.INFO_SAVED);
					if(andview){
						changetoview();
					}
				}else{
					$('#savebutton').removeAttr('disabled');
					$('#saveandviewbutton').removeAttr('disabled');
					$('#saveinfo').html(Lang.INFO_SAVE_FAIL);
				}
			},
			complete: function(xhr,status){	   
				$('#saveloader').hide();
			}
			
		});
}

function insertAtCursor(obj, txt) {
	obj.focus();
	// IE support
	if (document.selection) {
		sel = document.selection.createRange();
		sel.text = txt;
	}
	// MOZILLA/NETSCAPE support
	else {
		var startPos = obj.selectionStart;
		var scrollTop = obj.scrollTop;
		var endPos = obj.selectionEnd;
		obj.value = obj.value.substring(0, startPos) + txt
				+ obj.value.substring(endPos, obj.value.length);
		startPos += txt.length;
		obj.setSelectionRange(startPos, startPos);
		obj.scrollTop = scrollTop;
	}
} 
  
function useTab() {
	/* set all the tab indent for all the text areas */
	$("textarea").each(function() {
		$(this).keydown(function(eve) {
			if (eve.target != this)
				return; 
			
			if (eve.keyCode == 9) {
				eve.preventDefault();
				this.returnValue = false;
			} 
		});
	});
}

function itemTabActions(){
	$('#cancel-edit-content-button').click(function(){
		changetoview();
	});
	
	$('#edit-content-button').click(function(){
		if(Lang.LABEL_VIEW_CONTENT == $(this).html()){
			changetoview();
		}else{
			$('#view').hide();
			$('#edit').show(); 
			$('#edit-content-button').html(Lang.LABEL_VIEW_CONTENT);
		}
	});
}

function changetoview(){
	preview && preview();
	$('#view').show();
	$('#edit').hide();
	$('#edit-content-button').html(Lang.LABEL_EDIT_CONTENT);
}

function commentActions(){ 
	
	$('.removecommentbutton').click(function(){
		if(!confirm(Lang.CONFIRM_REMOVE_COMMENT)){
			return;
		}
	
		commentid = $(this).attr('id');
		temps = commentid.split('_');
		commentid = temps[1];
		itemid = $('#idforcomments').val();
		
		$('#commentloader').show();
		
		$.ajax({
			type: "POST",
			url: "/ajax/deletecomment",
			data: "commentid="+commentid+"&itemid="+itemid,
			success: function(msg){       
				if(msg.indexOf('false')!=0){     
					$('#comment_'+commentid).remove();
				}
			},
			complete: function(xhr,status){	    
				$('#commentloader').hide();
			}
		}); 
	});
	
	$('#addcommentbutton').click(function(){
		comment = $.trim($('#newcomment').val());
		if(comment.length==0){
			return;
		}
		itemid = $('#idforcomments').val();
		
		$('#commentloader').show(); 
		
		$.ajax({
			type: "POST",
			url: "/ajax/addcomment",
			data: "newcomment="+encodeURIComponent(comment)+"&itemid="+itemid,
			success: function(msg){       
				if(msg.indexOf('false')!=0){      
					$('#newcomment').val('');
					$('<div class="paddingl10 sf">'+msg+'</div>').insertBefore('#commentendline');
				} 
			},
			complete: function(xhr,status){	    
				$('#commentloader').hide();
			}
		}); 
	});
}
 
function changeCateName(){
    oldnames = [];
    $('.category-name-span').each(function(){
        oldname = $(this).html(); 
        oldnames.push(oldname);
    });
      
	/*
	$('#newcatebutton').click(function(){
		newcatename = $.trim($('#newcatefield').val());
		if(newcatename.length==0){
			alert(Lang.ERROR_CATE_NAME_EMPTY);
			return;
		}
		
		for (i = 0; i < oldnames.length; i++) {
            if (newcatename == oldnames[i]) {
                alert(Lang.ERROR_EXISTS_CATE_SAME_NAME);
				$('#newcatefield').val('');
                return;
            }
        }
		
		add = $(this).val();
		$(this).val(Lang.INFO_ADDING);
		$(this).attr({'disabled':'disabled'}); 
		$('#newcatefield').attr({'disabled':'disabled'});
		
		$.ajax({
            type: "POST",
            url: "/ajax/addnewcate",
            data: "newcatename=" + newcatename,
            success: function(msg){   
                if (msg.indexOf('false') != 0) {
                	$('#newcatefield').val(''); 
					
					var newdiv = $('#cate_sample').clone();
					newdiv.attr({'id':'cate_'+msg});
					$('#catelist').prepend(newdiv);
					$(newdiv).find('.category-name-span').html(newcatename);
					$(newdiv).find('.editcatefield').val(newcatename);
					newdiv.toggle('normal');
					
					$('#noanycatetr').hide();
					oldnames.push(newcatename);
					
					changeCateName();
                }else{
                	alert(Lang.ERROR_ADD_FAILE);
                }
            },
            complete: function(xhr, status){
				$('#cateloader').hide();
				$('#newcatebutton').val(add);
				$('#newcatebutton').removeAttr('disabled');
				$('#newcatefield').removeAttr('disabled');
            }
        });
		
	});
	*/
	
	deleting = false;
	$('.delcatebutton').click(function(){
	
		var catediv = $(this).parent().parent();
	
		id = $(catediv).attr('id');
		ids = id.split('_');
		cateid = ids[1]; 
		
		if(deleting){
			return;
		}
		
		if(!confirm(Lang.CONFIRM_DELETE_CATE)){
			return;
		}
		
		deleting=true;
		$('#cateloader').show();
		
		$.ajax({
            type: "POST",
            url: "/ajax/deletecate",
            data: "cateid=" + cateid,
            success: function(msg){  
                if (msg.indexOf('false') != 0) { 
					catediv.toggle('fast');   
                }else{
                	alert(Lang.ERROR_DELETE_FAIL);
                }
            },
            complete: function(xhr, status){
				deleting=false;
				$('#cateloader').hide();
            }
        });
									   
	});
	 
	changing = false;
	$('.edit-category-button').click(function(){
		if(changing){
			return;
		}
		
		catenamespan = $(this).parent().prev(); 
		
		catediv = $(catenamespan).parent().parent();
		$(catediv).find('.displaycatespan').hide();
		$(catediv).find('.editcatespan').show();
	});
	
	$('.cancel-edit-cate-button').click(function(){
		if(changing){
			return;
		}
		
		catediv = $(this).parent().parent().parent();
		
		oldcatename = $.trim($(catediv).find('.category-name-span').html());
		$(catediv).find('.editcatefield').val(oldcatename);
		
		$(catediv).find('.editcatespan').hide();
		$(catediv).find('.displaycatespan').show();
	});
	
	$('.save-edit-cate-button').click(function(){
		if(changing){
			return;
		}
		
		savebutton = $(this);
		catediv = $(this).parent().parent();
		
		oldcatename = $.trim($(catediv).find('.category-name-span').html());
		newcatename = $.trim($(catediv).find('.editcatefield').val());
		
		if(newcatename.length==0){
			alert(Lang.ERROR_CATE_NAME_EMPTY);
			return;
		}
		if(newcatename==oldcatename){
			$(catediv).find('.editcatespan').hide();
			$(catediv).find('.displaycatespan').show();
			
			return;
		}
		for(i=0;i<oldnames.length;i++){
			if(oldnames[i]==newcatename){
				alert(Lang.ERROR_EXISTS_CATE_SAME_NAME);
				return;
			}
		}
		urlcatename = encodeURIComponent(newcatename);
		
		idstr = $(catediv).attr('id');
		ids = idstr.split('_');
		cateid = ids[1];
		
		changing=true;
		$(catediv).find('.loader').show();
		$(savebutton).attr({'disabled':'disabled'});
		
		$.ajax({
            type: "POST",
            url: "/ajax/changecatename",
            data: "cateid=" + cateid + '&newcatename=' + urlcatename,
            success: function(msg){   
				//alert(msg);
                if (msg.indexOf('false') != 0) {   
					$(catediv).find('.category-name-span').html(newcatename);
					
					$(catediv).find('.editcatespan').hide();
					$(catediv).find('.displaycatespan').show();
					
					$(catediv).attr({'id':'cate_'+msg});
									
					for(i=0;i<oldnames.length;i++){
						if(oldnames[i]==oldcatename){
							oldnames[i]=newcatename; 
							break;
						}
					}
                }else{
					alert(Lang.ERROR_CHANGE_FAIL);
				}
            },
            complete: function(xhr, status){
				changing=false;
				$(catediv).find('.loader').hide();
				$(savebutton).removeAttr('disabled');
            }
        });
	});
	
}

function cateActions(){
	
	// add new cate in item view
	
	$('#morecatebutton').click(function(){
		if($('#morecatediv').is(':hidden')){
			$(this).html(Lang.LABEL_LESS);
			$('#morecatediv').toggle('normal');
		}else{
			$(this).html(Lang.LABEL_MORE_CATE);
			$('#morecatediv').toggle('normal');
		}
	});
		 	 	
	// show add cate span
	$('.show-add-cate-button').click(function(){
		$(this).hide();
		catediv = $(this).parent().parent();
		$(catediv).find('.add-cate-span').show();
		$(catediv).find('.selectcate').attr('value','-1');
	});
	
	// hide add cate span
	$('.cancel-add-cate-button').click(function(){
		div = $(this).parent().parent().parent();
		$(div).find('.show-add-cate-button').show();
		$(div).find('.add-cate-span').hide();
		$(div).find('.selectcate').attr('value','-1');
	});
	
	// add a cate to a item
	$('.selectcate').change(function(){
		// add cate span
		val = $(this).find('option:selected').val();
		if(val==-1){
			return;
		}else if(val==-2){
			catename = window.prompt(Lang.LABEL_PLEASE_INPUT_CATENAME,'');
			if($.trim(catename).length == 0){
				alert(Lang.ERROR_CATE_NAME_EMPTY);
				return;
			}
		}else{
			catename = $(this).find('option:selected').text();
			$(this).find('option:selected').remove();
		}
				
		catediv = $(this).parent().parent();
		catespan = $(catediv).find('.item-cate-sample').clone();
		$(catespan).find('.valuespan').html(catename);
		$(catediv).find('.item-cate-list').append(catespan);
		$(catespan).show();
		$(catespan).removeClass('item-cate-sample');
				
		// hide add cate span
		div = $(this).parent().parent().parent();
		$(div).find('.show-add-cate-button').show();
		$(div).find('.add-cate-span').hide();
		$(div).find('.selectcate').attr('value','-1');
		
		itemid = $(div).find('.itemidforcatespan').html();
				
		$.ajax({
			type: "POST",
			url: "/ajax/addcate",
			data: "catename="+encodeURIComponent(catename)+"&id="+itemid,
			success: function(msg){     
				if(msg.indexOf('false')!=0){   
					bindRemoveCateActions();
				}else{
					alert(Lang.ERROR_ADD_FAILE);
				}
			},
			complete: function(xhr,status){	    
			}
		});
	});
}
	
function bindRemoveCateActions(){
	
	// remove cate from item
	$('.remove-cate-button').click(function(){
		//alert('sdlkfj');
		$(this).parent().hide();
		
		catename = $(this).prev().html();
		
		div = $(this).parent().parent().parent();
		itemid = $(div).find('.itemidforcatespan').html();
		
		//alert(catename);
		//alert(itemid);
		
		$.ajax({
			type: "POST",
			url: "/ajax/removecatebyname",
			data: "catename="+encodeURIComponent(catename)+"&itemid="+itemid,
			success: function(msg){     
				//alert(msg);
			},
			complete: function(xhr,status){	    
			}
		});
	});
	
}

function contactsActions(){
	moresharelinkname = '';
	$('#moresharelink').click(function(){
		if($('#moresharediv').is(':hidden')){
			moresharelinkname = $(this).html();
			$(this).html(Lang.LABEL_LESS);
			$('#moresharediv').toggle('normal');
		}else{
			$(this).html(moresharelinkname);
			$('#moresharediv').toggle('normal');
		}
	});
	
	$('#followuserbutton').click(function(){ 
		$(this).attr({'disabled':'disabled'});
		$('#followloader').show();
		id = $('#contact_id').val();
		
		$.ajax({
			type: "POST",
		   	url: "/ajax/followuser",
		   	data: "user_id="+id,
		   	success: function(msg){   
		   		//alert(msg);
				if(msg.indexOf('false')==0){  
					$('#addascontact').removeAttr('disabled');
					$('#addcontactspan').html(Lang.ERROR_FOLLOW_FAIL);
				}else{ 
					$('#followuserbutton').hide();
					$('#addcontactspan').html(Lang.INFO_FOLLOW_SUCCESS);
				}
		    },
		   	complete: function(xhr,status){	 
		   		$('#followloader').hide();  
		   	}	
		});
		
	});
		
	$('.unfollowbutton').click(function(){
		if(!confirm(Lang.CONFIRM_DELETE_FOLLOWER)){
			return;
		}
		
		contactid = $(this).attr('id'); 
		id = contactid.split('_')[1]; 		 
		$('#contactloader').show();
		
		$.ajax({
		   	type: "POST",
		   	url: "/ajax/unfollow",
		   	data: "contact_id="+id,
		   	success: function(msg){  
			 	//alert( "" + msg );
			 	if(msg.indexOf('true')>=0){ 
				 	$('#contact_'+id).toggle('slow');
			 	}else{
				 	alert(Lang.INFO_DELETE_CONTACT_FAIL);
			 	}
		   	},
			complete: function(xhr,status){	
 				$('#contactloader').hide(); 
			}
		});
	});
}
    
function viewerActions(){
	$('#show-add-viewer-div-button').click(function(){  
		$('#add-viewer-div').show('normal'); 
	});
	
	$('#cancel-add-viewer-button').click(function(){
		$('#add-viewer-div').hide('normal');
	});
	
	$('#addviewerbutton').click(function(){ 
		viewerid = $('#viewer').val(); 
		itemid = $('#idforviewers').val();
		
		$('#viewerloader').show();
		
		$.ajax({
			type: "POST",
			url: "/ajax/addviewer",
			data: "viewerid="+viewerid+"&itemid="+itemid,
			success: function(msg){        
				if(msg.indexOf('false')!=0){
					$('#noviewerinfo').hide(); 
					$('#viewerlist').prepend('<div class="paddingl10"><a href="/user/'+viewerid+'">'+msg+'</a></div>');	
					
					viewers = $('#viewer').children();
					for(i=0;i<viewers.size();i++){
						if($(viewers[i]).val()==viewerid){
							$(viewers[i]).remove();
						}
					}
				}
			},
			complete: function(xhr,status){	
				$('#show-add-viewer-div-button').hide();
				$('#viewerloader').hide();
			}
		});
	});
	
	$('.deleteviewerbutton').click(function(){
		
		choice = confirm(Lang.JS_DELVIEWER_CONFIRM);
		if(!choice){
			return;
		}
											
		viewerid = $(this).attr('id');			
		tempstrs = viewerid.split('_');
		viewerid = tempstrs[1]; 
		itemid = $('#idforviewers').val();
		 
		$('#viewerloader').show();
		 
		$.ajax({
			type: "POST",
			url: "/ajax/removeviewer",
			data: "viewerid="+viewerid+"&itemid="+itemid,
			success: function(msg){       
				if(msg.indexOf('false')!=0){ 
					$('#viewer_'+viewerid).hide();
				}
			},
			complete: function(xhr,status){	    
				$('#viewerloader').hide();
			}
		});
	});
	
}
 
//处理[code][/code]标签
function escapeCode(stringObject) {
	var startIndex = stringObject.search(/\[code\]\n/);
	var size = 7;
	if (startIndex < 0) {
		startIndex = stringObject.search(/\[code\]/);
		if (startIndex < 0)
			return false;
		size = 6;
	}
	var endIndex = stringObject.search(/\[\/code\]/,startIndex);
	var innerString = stringObject.substring(startIndex+size,endIndex);
	return stringObject.substring(0,startIndex)+"<pre><code>"+innerString.replace(/\]/g, "&#93;").replace(/\[/g, "&#91;").replace(/</g,"&lt;").replace(/>/g,"&gt;")+"</code></pre>"+stringObject.substring(endIndex+size+1);
}

//解析并返回解析完毕的字符串
function parseUbb(source) {
	while(true) {
		var s = this.escapeCode(source);
		if (!s)
			break;
		else
			source = s;
	}
	return source.replace(/\[b\]\n?/gm,"<strong>").replace(/\n?\[\/b\]/g,"</strong>")
			.replace(/\[i\]\n?/gm,"<em>").replace(/\n?\[\/i\]/g,"</em>")
			.replace(/\[u\]\n?/gm,"<u>").replace(/\n?\[\/u\]/g,"</u>")
			.replace(/\[img\](.*?)\[\/img\]/g,"<img src='$1' alt='$1' />")
			.replace(/\[url\="?(.*?)"?\]\n?/gm,"<a href='$1'>").replace(/\n?\[\/url\]/g,"</a>")
			.replace(/\[size\="?(.*?)"?\]\n?/gm,"<span style='font-size:$1%'>").replace(/\n?\[\/size\]/g,"</span>")
			.replace(/\[color\="?(.*?)"?\]\n?/gm,"<span style='color:$1'>").replace(/\n?\[\/color\]/g,"</span>")
			.replace(/\[quote\]\n?/gm,"<blockquote>").replace(/\n?\[\/quote\]/g,"</blockquote>")
			.replace(/\[list\]\n?/gm,"<ul>").replace(/\n?\[\/list\]/g,"</ul>")
			.replace(/\[\*\]\s?(.*?)\n/g,"<li>$1</li>")
			.replace(/\[\*\]\s?(.*?)\<\/ul\>/g,"<li>$1</li>") //处理最后一行没有\n的情况
			.replace(/\r/gm,"").replace(/\n/gm,"<br/>");
}

function preview() {
	var ubb = $("#contentarea").val() ? parseUbb($("#contentarea").val()) : parseUbb($("#view").text());
	$("#progressView").hide();
	$("#view").text("");
	$("#view").children().remove();
	$("#view").html(ubb);
	$("#view").show();
}
