String.prototype.basename=function(suffix){
	return this.replace(/^(.*\/)|(\?|#).*$/g,'')||'index.'+(suffix||'php');
}
/*form validation*/
String.prototype.isValidEmail=function(){
	re= /^([a-z0-9])+([._])?([a-z0-9])+@([a-z0-9\-])+\.([a-z0-9]){2,}$/i;
	return re.test(this);
}

String.prototype.isValidNumber=function(){
	return /^(\+)?\d+$/.test(this);
}
String.prototype.isValidPhone=function(){
	return /^[\+\d\s\-\(\)]+$/.test(this);
	//return this.match(/^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/)==null?false:true;
}

String.prototype.isValidAlfaNumaric=function(){
	return /^\w+$/.test(this);
}




jQuery(document).ready(function($){
$('#form-subscribe').submit(function(){
		var form=this;
		var res='#form-subscribe-title',resHtml=$(res).html();
			if( isValidForm(form,'.required') ){
			    $(res).html('sending...');
				$(form).loadDATA(function(msg){
					if(msg=='sent'){
						$(res).html('Subscribed successfully.');
						form.reset();
					}
					else{
						$(res).html('An error occured');
						$(form).slideDown('slow');
					}
					
				}).slideUp('slow');	   
			}
			return false;
	}).find('.required').smartInput();
});

(function($){
	
isValidForm=function(form,selector){
	var $field=$(form).find(selector);
	var error=[];
	var elem=[];
	var focusClass='smartFocus';
	var wrapClass=focusClass+'-wrap';
	var index=0;
	$field.each(function(i,o){
			$(o).val($.trim($(o).val()));
			if( $(o).val()=='' || $(o).filter(':not(:checkbox)').val()==o.defaultValue
							   || ($(o).is(':checkbox')&&!$(o).is(':checked'))
							   || ($(o).is('.email')&&!$(o).val().isValidEmail()) 
							   || ($(o).is('.numeric')&&!$(o).val().isValidNumber())
							   || ($(o).is('.phone')&&!$(o).val().isValidPhone())
							   || ($(o).is('.alphanumeric')&&!$(o).val().isValidAlfaNumaric())
							   //|| (o==form.confirm_email && form.email.value!=form.confirm_email.value) 
							   ){
				error[index]=true;
				elem[index]=o;
				index+=1;
				//$(o).removeClass(focusClass);
			}
			else{
				//error[i]=false;
				//$(o).removeClass(focusClass);
			}
	}).removeClass(focusClass).parent().removeClass(wrapClass);
	
	if(elem.length){
		$(elem).addClass(focusClass).eq(0).focus();
		$(elem).filter(':checkbox').parent().addClass(wrapClass);
		//alert(elem[0].name);
		return false;
		}
	else {
		return true;
		//alert('no error');
	}
}
/******************/
$.fn.smartInput=function(){
		return this.each(function(i,o){
		 $(o).focus(function(){if(this.value==this.defaultValue) this.value='';})
			 .blur(function(){this.value=($.trim(this.value)=='')?this.defaultValue:$.trim(this.value);});
		 });
}

/******************/
$.fn.loadDATA=function(success){
	$this=$(this);
	$.ajax({
		   type: $this.attr('method')||"GET", 
		   url: $this.attr('href')||$this.attr('action'), 
		   data: $this.attr('href')||$this.serialize(),
		   success: success
	});
	
	return $this;
}

})(jQuery);
