function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/, "");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/, "");
}

/*
CSS Browser Selector v0.3.5 (Feb 05, 2010)
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',o='opera',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);
function isValidEmail(email) {
 var regex = /([\w\d\-_]+)(\.[\w\d\-_]+)*@([\w\d\-_]+\.)([\w\d\-_]+\.)*([\w]{2,3})/;
 if (regex.test(email))
 return true;
 else
 return false;
} 
			
$(document).ready(function(){  


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//					
// global submenu 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//										   
				$(".menu li a").mouseenter(function() { 
					//Following events are applied to the subnav itself (moving subnav up and down)  
					$(this).parent().find("ul.subMenu").css('z-index','999').slideDown('fast').show(); //Drop down the subnav on click  
			  
					$(this).parent().hover(function() {  
					}, function(){  
						$(this).parent().find("ul.subMenu").slideUp('fast', function(){																			 
							$(this).parent().find('a').removeClass();
						}); //When the mouse hovers out of the subnav, move it back up  
					});  
			  
					//Following events are applied to the trigger (Hover events for the trigger)  
					}).hover(function() {  
						//On hover over
						$(this).parent().parent().find('a').removeClass();
						$(this).addClass('active');																									
					}, function(){  //On Hover Out  
						//$(this).removeClass("subhover"); //On hover out, remove class "subhover"  
						if(!$(this).parent().find('ul.subMenu').length){
							$(this).removeClass('active'); // if there is no submenu remove active state of the main hover
						}
				});  
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//					
// form 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//				
				$('fieldset.search label span').click(function(){
					if($(this).parent().parent().find('label input').attr('value') == ""){
						$(this).parent().find('span').fadeIn('fast');
					}															
					$(this).fadeOut('fast', function(){
					    $('fieldset.search label input').get(0).focus();
					});						
				});
				$('fieldset.search label input').focusin(function(){
						//$(this).parent().find('span').fadeOut('fast');
						
				});
				$('fieldset.search label input').focusout(function(){
					if($(this).attr('value') == ""){
						$(this).parent().find('span').fadeIn('fast');
					}
				});
				$('fieldset.search label input').keypress(function(e){
				     if(e){
                        if(e.keyCode==13){
                            postbackSearch();
                            return false;
                        }
                    }

						
				});
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//					
// end 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//							
				$('.subNav ul li:first-child').css('border','none').css('background','none').css('padding','0');
});

$(document).load(function(){
    Custom.init();
});
function setupDefaultTextReset(obj, message) {
    obj.click(function() {
        if (obj.val() == message)
            obj.val('');
    });
    obj.blur(function() {
        if (obj.val() == '')
            obj.val(message);
    });
}

var validator = {
    validationData: null,
    applyFormValidation: function(data) {
        validator.validationData = data;
        data.submitButton.click(validator.submitClick);
        var currentField;
        for (var i = 0; i < data.fields.length; i++) {
            currentField = data.fields[i];
            if (currentField.type == "required") {
                currentField.control.blur(validator.requiredBlur);
            }
            else if (currentField.type == "regex") {
                currentField.control[0].regex = currentField.expression;
                currentField.control.blur(validator.regexBlur);
            }
        }
    },
    validate: function() {
        var validationSummary = validator.validationData.validationMessage + "<ul>";
        var currentField;
        var isValid = true;
        var val = null;
        for (var i = 0; i < validator.validationData.fields.length; i++) {
            currentField = validator.validationData.fields[i];
            val = currentField.control.val().trim();
            if((currentField.type == "required") && (val == "") ){
               isValid = false;
               validationSummary += "<li>" + currentField.msg + "</li>";
               if(!currentField.control.parent().hasClass(validator.validationData.fieldErrorClass))
                currentField.control.parent().addClass(validator.validationData.fieldErrorClass);
            }
            else if((currentField.type == "regex") && (!currentField.expression.test(val))){
               isValid = false;
               validationSummary += "<li>" + currentField.msg + "</li>";   
               if(!currentField.control.parent().hasClass(validator.validationData.fieldErrorClass))
                currentField.control.parent().addClass(validator.validationData.fieldErrorClass);
            }
        }
        validationSummary += "</ul>";
        if(isValid){
            validator.validationData.validationMessages.hide();
        }
        else{
            validator.validationData.validationMessages.html(validationSummary);
            validator.validationData.validationMessages.show();
        }        
        return isValid;
    },
    submitClick: function(){
        var isValid = validator.validate();
        if(isValid)
            validator.validationData.doPostback();
    },
    regexBlur: function() {
        var val = $(this).val().trim();
        var expression = $(this)[0].regex;
        if (expression.test(val)) {
            $(this).parent().removeClass(validator.validationData.fieldErrorClass);
        }
        else {
            if(!$(this).parent().hasClass(validator.validationData.fieldErrorClass))
                $(this).parent().addClass(validator.validationData.fieldErrorClass);
        }
    },
    requiredBlur: function() {
        var val = $(this).val().trim();
        if (val == "") {
            if(!$(this).parent().hasClass(validator.validationData.fieldErrorClass))
                $(this).parent().addClass(validator.validationData.fieldErrorClass);
        }
        else {
            $(this).parent().removeClass(validator.validationData.fieldErrorClass);
        }
    }
}
