
    function validateName(strToValidate, errorIndicator) {
        var obj = eval('$(\'' + errorIndicator + '\')');
        var i = strToValidate.indexOf(' ');
        var invalid=false;
        if(i > 0) invalid|=true;
        var regexp = /^([a-zA-Z0-9]+([\-a-zA-Z0-9]*[a-zA-Z0-9]+)?\.){0,}([a-zA-Z0-9]+([\-a-zA-Z0-9]*[a-zA-Z0-9]+)?){1,63}/i;
        i = strToValidate.search(regexp);
        if(i == -1) invalid=true;
        
        if(invalid) {
            obj.addClass('error');
        } else {
            obj.removeClass('error');
        }
    }

    function showUserName(sourceToValidate, userNamePreview, errorIndicator) {
        var obj = eval('$(\'' + sourceToValidate + '\')');
        var text = obj.value;
        text = text.toLowerCase();
        validateName(text, errorIndicator);
        
        var uPreview =  eval('$(\'' + userNamePreview + '\')');
        uPreview.setText(text);
    }

    function HideDisplaySuccess(){
        setTimeout(function() {    
                $(".SuccessControl").fadeOut(1000);
        }, 3000); 
    }

    function hideOut(element) {
        setTimeout('fadeOut(\'' + element + '\')', 4000);
    }
    
    function fadeOut(element) {
        var obj = eval("$('" + element + "')");
        if(obj == null) return; 
        var fx = new Fx.Styles(obj,  {duration: 500, wait: true});            
        fx.start({ 'height': 0, 'opacity' : 0, 'margin-bottom': -5 });                        
        setTimeout('remove(\'' + obj.id + '\')', 520);
    }
    
    function remove(element) {
        var obj = eval("$('" + element + "')");            
        if(obj == null) return;
        obj.remove();
    }
    
    function hide(element) {
        var obj = eval("$('" + element + "')");
        obj.setStyles({'height': 0, 'opacity': 0});        
    }
    
    function hideSimple(element) {
        var obj = eval("$('" + element + "')");
        obj.setStyle('height', 0);        
    }
    
    function fadeIn(element) {
        var obj = eval("$('" + element + "')");
        if(obj == null) return;
        var fx = new Fx.Styles(obj, { duration: 200, wait: true});
        fx.start({'height': 150, 'opacity': 100});            
    }
    
    function fadeInWithHeight(element, height) {
        var obj = eval("$('" + element + "')");
        if(obj == null) return;
        
        if (navigator.appName.indexOf("Microsoft") != -1 || navigator.appName.indexOf("MSIE") != -1) 
        {
		    obj.style.height = '0px';
            obj.style.visibility = 'hidden';
            obj.style.opacity = 0;
            
            var fx = new Fx.Styles(obj, { duration: 600, wait: true, transition: Fx.Transitions.Quart.easeIn });
            fx.start({'height': height, 'opacity': 100});
            
            obj.style.display = 'block';
        }    
        else 
        {
            obj.style.display = 'block';
        }
    }
    
    function fadeOutDoNotRemove(element) {

        var obj = eval("$('" + element + "')");
        if(obj == null) return; 

        if (navigator.appName.indexOf("Microsoft") != -1 || navigator.appName.indexOf("MSIE") != -1) 
        {
            var fx = new Fx.Styles(obj,  {duration: 600, wait: true});            
            fx.start({ 'height': 0, 'opacity' : 0, 'margin-bottom': -5 });
            
        } else 
        {
            obj.setStyle('display', 'none');        
        }
    }
    
    function showCropPanel() 
    {
        var panel = $find('ModalPopupExtenderCrop');
        panel.show();
    }
        
    function showLoginPanel() 
    {
        var panel = $find('ModalPopupExtender1');
        panel.show();
        setLoginFocus();
    }

    function showLoginPanel(url) 
    {
        var panel = $find('ModalPopupExtender1');
        panel.show();
        // Cookie.set('backUrl', url, {path: "/"});  
        setLoginFocus();
    }
    
    function hideLoginPanel() 
    {
        var panel = $find('ModalPopupExtender1');
        if($('loginPanelMessage') != null) {
            $('loginPanelMessage').innerHTML = "";  
        }
        panel.hide();
    }
    
    function hideCropPanel() 
    {
        var panel = $find('ModalPopupExtenderCrop');
        panel.hide();
    }

    function hideCancelButton() 
    {
        $('biCancel').setStyle('display', 'none');                
    }
    
    function hideSignUpCancelButton() 
    {
        $('ctl00_btnRegisterCancel').setStyle('display', 'none');
    }
    
    function resize(obj){
        var rows = obj.rows, cols = obj.cols, defaultRows = 4;
        
        var lines = obj.value.split('\n'), newRows = lines.length;
        lines.each(function(line){
            if (line.length >= cols) newRows += Math.floor(line.length / cols);
        });
        
        if (newRows > rows) obj.rows = newRows;
        if (newRows < rows) obj.rows = Math.max(defaultRows, newRows);
    }
    
    function addResize(obj) {                
        obj.addEvents({
            'keyup': function() {
                resize(obj);
            }            
	    }
	    );
	}
	
	function wrapWords() 
    {
	    
    	var walker = document.createTreeWalker(_elem, NodeFilter.SHOW_TEXT, null, false);

        while (walker.nextNode())
        {
           var node = walker.currentNode;
           node.nodeValue = node.nodeValue.split('').join(String.fromCharCode('8203'));
        }
	}
	
	var css_browser_selector = function() {
	var 
		ua=navigator.userAgent.toLowerCase(),
		is=function(t){ return ua.indexOf(t) != -1; },
		h=document.getElementsByTagName('html')[0],
		b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',
		os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
	var c=b+os+' js';
	h.className += h.className?' '+c:c;
    }();
	