function imageSlide(o){
	var src=o.src.toString(); var srcOver=''; var c=src.split('_'); if(c.length==2) srcOver=c[0]+'_over_'+c[1]; if(c.length==3) srcOver=c[0]+'_'+c[2]; o.src=srcOver;
}
function getString(str,num){
	var s=str.replace('&nbsp;',' ');
	var ch=s.split(' ');
	if(num<ch.length){
		var rs='';
		for(var i=0; i<num; i++){ rs+=ch[i]+' '; } 
		return rs;
	}
	return '';
}
/* cut text by num char, available if num > 0 */
function fixSum(sumObj,num){ if(num>0){ var s=$(sumObj).val(); s=getString(s,num); if(s!='') $(sumObj).val(s+'...'); } }

jQuery.fn.extend({
/*
written at: 24/08/2009
Author by:	Tran Quang Vu
user guide:	
# Code:			$(object).tncTab({'titleFrameStyle':'','titleStyle':'','titleStyleFocus':''});
# Templates:	tag[ object ][ <div title="tab_button_title" tabFocus="true|false"> </div>... ]
# Example:		<div id="tabFrame"> <div title="tab1" tabFocus="true"></div><div title="tab2" tabFocus="false"></div> </div>
*/				 
	tncTab			:	function(param){
		var mainId=$(this).attr('id');
		var _tab=''; var _content=''; var _ele=new Array(); var p=new Array();
		try { if (param['titleFrameStyle']) {p['titleFrameStyle']=param['titleFrameStyle'] } } catch (err) { p['titleFrameStyle']="TncTabFrame"; }
		try { if (param['titleStyle']) {p['titleStyle']=param['titleStyle'] } } catch (err) { p['titleStyle']="TncTabItem"; }
		try { if (param['titleStyleFocus']) {p['titleStyleFocus']=param['titleStyleFocus'] } } catch (err) { p['titleStyleFocus']="TncTabItemFocus"; }
		$('#'+mainId).find('div[tabFocus]').each(function(i){
			var _style=($(this).attr('tabFocus')=='false')?p['titleStyle']:p['titleStyleFocus'];													  
			var _display=($(this).attr('tabFocus')=='false')?"none":"block";		
			_ele[i]='tab'+i+'_'+mainId;
			_tab+='<td class="'+_style+'" id="'+_ele[i]+'">'+$(this).attr('title')+'</td><td width="1"></td>';
			_content+='<div style="display:'+_display+'" id="'+_ele[i]+'_" class="tab_'+mainId+'">'+$(this).html()+'</div>';
		});
		_tab='<div align="left" class="'+p['titleFrameStyle']+'"><table cellpadding="0" cellspacing="0"><tr><td width="5"></td>'+_tab+'</tr></table></div>';
		$(this).html(_tab+'<div style="height:5px"></div>'+_content);
		$('#'+mainId).ready(function(){
			for(var i=0; i<_ele.length; i++){
				$('#'+_ele[i]).click(function(){
					if($('#'+$(this).attr('id')).attr('class')!=p['titleStyleFocus']){											  
						for(var i=0; i<_ele.length; i++){
							$('#'+_ele[i]).removeClass(p['titleStyleFocus']).addClass(p['titleStyle']);										  
						}
						$('#'+$(this).attr('id')).removeClass(p['titleStyle']).addClass(p['titleStyleFocus']); 
						$('.tab_'+mainId).hide(0,$('#'+$(this).attr('id')+'_').slideDown(10)); 
					}
				});
			}
		});
	}
	,
	Editor				:	function(title,width,height,lanid,toolbar){
		var objI=$(this).attr('id'); obj=objI.replace('Frame',''); var o='#'+obj+'_Frame';
		try{
			if(!document.getElementById(obj+'_Frame')){
				var rs='<div id="'+obj+'_Frame" style="position:absolute; z-index:9999; padding:0px 5px 5px 5px; border:1px solid #666; border-top:3px solid #666; background-color:#EFEFEF; display:none; top:0px"><table cellpadding="0" cellspacing="0" width="100%"><tr><td align="left" style="font-family:tahoma; font-size:11px; color:#000; font-weight:normal">'+title+'</td><td align="right"><img style="cursor:pointer" onMouseOver="imageSlide(this)" onMouseOut="imageSlide(this)" src="./components/articles/resources/images/icons/close_.gif" onclick="$(\'#'+obj+'_Frame\').fadeOut(300)" vspace="5" /></td></tr></table></div>';
				$('#'+objI).after(rs);
				$('#'+obj).toEditor(width,height,lanid,toolbar);
				var top=parseInt(($(document).height()-$(o).height())/2);
				var left=parseInt(($(document).width()-$(o).width())/2);
				$(o).css({top:top+'px',left:left+'px'});
				$(o+'>*').load(function(){ $(o).fadeIn(300); });
			}
			else{
				$(o).fadeIn(300);
			}
		}
		catch(err){
			return false;
		}
	}
	,
	toEditor			:	function(width,height,lanid,toolbar){
		var obj=$(this).attr('id');
		var rs='<input type="hidden" id="'+obj+'___Config" value="AutoDetectLanguage=false&DefaultLanguage='+lanid+'&SkinPath=../../../../resources/fckeditor/editor/skins/office2003/" style="display:none" /><iframe id="'+obj+'___Frame" src="../../resources/fckeditor/editor/fckeditor.html?InstanceName='+obj+'&Toolbar='+toolbar+'" width="'+width+'" height="'+height+'" frameborder="0" scrolling="no"></iframe>';
		$('#'+obj+'_Frame').append(rs);
		$('#'+obj).css({'color':'#CCC'}).attr('readonly','readonly');
	}
	,	
	ComboBox			:	{
		Select			:	function(obj,title,val){
			$(obj).slideUp(200);
			var o=obj.replace('Layer',''); o=o.replace('#combobox','');
			$('#'+o).val(val); $('#combobox'+o).text(title);
		}
	}
	,
	loadTemplates		:	function(bgImg){
		var o=$(this).attr('id');
		$('#'+o).fadeOut(0,function(){ 
			$(this).css({'background-image':'url('+bgImg+')','background-position':'center','background-repeat':'no-repeat'});
		});
		$('#'+o).fadeIn(300);
	}
});

jQuery.extend({
    href                    :   function(o){
        document.location=o;                                          
    },
	disableContext			:	function(){
		$(document.body).bind("contextmenu", function(e){ return false; });
	}
	,
	basicMenu				:	function(o,opt){
		if(opt=='0'){ $(o).css({'visibility':'visible'}); }
		if(opt=='1'){ $(o).css({'visibility':'hidden'});}
	}
	,
	rightMenu				:	{
		show				:	function(obj,menuObj,val){
			$(obj).bind("contextmenu", 
				function(e){ 
					var x=e.pageX; var y=e.pageY; $(menuObj).css({left:x,top:y}); 
					$(menuObj+'>input[title="menuAtbValue"]').val(val);
					$(menuObj).fadeIn(300);
					return false;
				}
			);
		}
		,
		hide				:	function(menuObj){
			$(menuObj).fadeOut(300);	
		}			
	}
	,
/* Change to Editor "FCK Editor" */	
	toEditor				:	function(objid,lanid,width,height,toolbar){
		var rs='<input type="hidden" id="'+objid+'___Config" value="AutoDetectLanguage=false&DefaultLanguage='+lanid+'&SkinPath=../../../../resources/fckeditor/editor/skins/office2003/" style="display:none" />';
		rs+='<iframe id="'+objid+'___Frame" src="../../resources/fckeditor/editor/fckeditor.html?InstanceName='+objid+'&Toolbar='+toolbar+'" width="'+width+'" height="'+height+'" frameborder="0" scrolling="no"></iframe>';
		$('#'+objid).append(rs);
    },
/**
*   Check All Functions
*/
    isNumber    :    function(n)
    {
        var reg = new RegExp("^[-]?[0-9]+[\.]?[0-9]+$");
        return reg.test(n);
    }
    ,
    isInteger    :    function(n)
    {
        var isInteger_re     = /^\s*(\+|-)?\d+\s*$/;
        return String(n).search (isInteger_re) != -1
    }
    ,
    isDigit        :    function(n)
    {
        var reg = new RegExp("^[0-9]$");
        return (reg.test(n));
    }
    ,
    isCurrency:    function(curr)
    {
        var isCurrency_re    = /^\s*(\+|-)?((\d+(\.\d\d)?)|(\.\d\d))\s*$/;
        return String(curr).search (isCurrency_re) != -1
    }
    ,
    isEmail        :    function(s)
    {
        var reg = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
        return reg.test(s);
    }
    ,
    isBlank        :    function(s)
    {
        var isNonblank_re    = /\S/;
        return String (s).search (isNonblank_re) != -1;
    },
/**
*   String All Functions
*/
    trim            :   function(st){
        return st.replace(/^\s+|\s+$/g,"");
    },   
    Ltrim            :   function(st){
        return st.replace(/^\s+/,"");
    },
    Rtrim            :   function(st){
        return st.replace(/\s+$/,"");
    },         
/**
*   Key Press Valid
*/
    onlyNumber      :   function(e){
        var keynum; var keychar; var numcheck; 
        if(window.event){ // IE
            keynum = e.keyCode;
        }else if(e.which){ // Netscape/Firefox/Opera
            keynum = e.which;
        }
        keychar = String.fromCharCode(keynum);
        numcheck = /\d/;
        if(keynum!=8 && keynum!=13 && keynum!=27)
        return numcheck.test(keychar);
    } 
});
