(function(jQuery){
 	jQuery.fn.extend({rezervari: function(options) {
		//set the default values
		var defaults = {
			head: 'Rezervari', //header for page
			sendToEmail : 'matricks@webspider.ro',//list of emails addresses
			strSubject : 'Rezervare de pe website',
			roomsType : '2 paturi, 3 paturi, Matrimoniala',//list of rooms type
			strName : 'Nume si prenume', //string for name 
			strCompany : 'Companie', //string for company 
			strEmail : 'E-mail',//string for email
			strPhone : 'Telefon',//string for phone
			strRoom : 'Tip Camera',//string for room
			strFromDate : 'De la',//string for from date
			strToDate : 'Pana la',//string for to date
			strCaptcha : 'Calculati', //string for captcha
			strMessage : 'Mesaj', //string for message
			strSend : 'Rezerva', //string for send
			strNotComplet : 'Campurile obligatorii nu sunt completate', //fields aren't completed
			rows: 10, //number of rows for textarea
			validYes : '../img/validYes.png',//url for valid icon
			validNo : '../img/validNo.png', //url for invalid icon
			captcha_limit : 5,//maximum number for captcha 
			send_success:'Mesajul a fost trimis!Va multumim!', //string for successful sent email
			send_failure : 'In timpul expedierii a avut loc o eroare!',//string for failured sent email
			valid_name : 7,//minimum chars for valid name
// 			valid_subject : 1,//minimum chars for valid subject
			valid_message : 20,//minimum chars for valid message

		//prepare html form 
		make_form : function(){
			cForm = '';

cForm += '<div class="container_rezervare">';
	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strName+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" id="cName" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcName"></span></div>';
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare">&nbsp;&nbsp;&nbsp;'+options.strCompany+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" id="cCompany"></div>';	
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strEmail+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" id="cEmail" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcEmail"></span></div>';	
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strPhone+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" id="cPhone" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcPhone"></span></div>';	
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strRoom+':</div>';	
		cForm += '<div class="input_rezervare">';
			cForm += '<select name="tip_camera" id="cRoom">';
				jQuery.each(options.roomsType, function(i,n){
					cForm += '<option value="'+n+'">'+n+'</option>';
				});
			cForm += '</select>';
		cForm += '</div>';
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strFromDate+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" value="ZZ/LL/AAAA" id="cFromDate" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcFromDate"></span></div>';	
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strToDate+':</div>';	
		cForm += '<div class="input_rezervare"><input type="text" value="ZZ/LL/AAAA" id="cToDate" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcToDate"></span></div>';	
	cForm += '</div>';


	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strMessage+':</div>';
		cForm += '<div class="input_rezervare"><textarea cols="50" rows="'+options.rows+'" id="cMessage"></textarea><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcMessage"></span></div>';
	cForm += '</div>';

	cForm += '<div class="row_campuri">';
		cForm += '<div class="info_rezervare"><span style="color:red;">* </span>'+options.strCaptcha+': <span id="captcha"> </span></div>';
		cForm += '<div class="input_rezervare"><input type="text" style="width:30px;" id="cCaptcha"><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcCaptcha"></span></div>';
	cForm += '</div>';

	cForm += '<div class="row_trimite">';
		cForm += '<input type="button" style="width:60px;" class="submit" id="cSend" value="'+options.strSend+'">';
	cForm += '</div>';


cForm += '</div>';
			return cForm;
		},//end make_form

		//name validation
		isValidcName : function(cName) {
			var ln = cName.length;
			if(ln > options.valid_name -1)return true;
			return false;
		},

		// email validation
		isValidcEmail : function(cEmail) {
			var regexp = (/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			return regexp.test(cEmail);
		},

		// phone to validation
		isValidcPhone : function(cPhone) {
			var regexp = (/^\(?07\d{2}\)?[-\s]?\d{3}[-\s]?\d{3}$/i);
			return regexp.test(cPhone);
		},


		//from date validation
		isValidcFromDate : function(cFromDate) {
			var regexp = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
			return regexp.test(cFromDate);
		},


		//to date validation
		isValidcToDate : function(cToDate) {
			var regexp = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
			return regexp.test(cToDate);
		},


		//message validation
		isValidcMessage : function(cMessage) {
			var ln = cMessage.length;
			if(ln > options.valid_message -1)return true;
			return false;
		},

		//captcha validation
		isValidcCaptcha : function(cCaptcha, answer){
			if(answer == cCaptcha)return true;
			return false;
		}

		}//end defaults

		var options =  $.extend(defaults, options);
		var answer = '';//here we keep answer for captcha

    		return this.each(function() {
		var o = options;//to use only o as prefix for default options values
		jQuery(this).html(o.make_form());//insert our form in page
		
		//simple captcha test	
		var first_number = Math.floor(Math.random()*(o.captcha_limit +1));
		var second_number = Math.floor(Math.random()*(o.captcha_limit +1));
		if(first_number > second_number){
			answer = first_number - second_number;
			jQuery('#captcha').html(first_number+' - ' +second_number  + ' = ');
		}else{
			answer = first_number + second_number;
			jQuery('#captcha').html(first_number+' + ' +second_number + ' = ');
		}

		var checkFields = ['cName', 'cEmail', 'cPhone', 'cFromDate', 'cToDate', 'cMessage', 'cCaptcha'];//checkable fields
		jQuery.each(checkFields, function(i,n){
			var fItemID = '#'+ n;//#cName, #CEmail, #cSubject


			jQuery(fItemID).keyup(function(){
				var fVal = jQuery(fItemID).val();//value of checkable field
				var fFunction = 'o.isValid' + n; //o.isValidName, o.isValidEmail, o.isValidCaptcha
				var fisValidId = '#isValid' + n; //#isValidName, #isValidEmail, #isValidCaptcha
				if(fVal != 0){//if field is not empty (after delete all from it)
					if(eval(fFunction)(fVal, answer)) {//we match valid
						jQuery(fisValidId).css({'background-image': 'url("'+o.validYes+'")'});//show valid icon
					} else {
						jQuery(fisValidId).css({'background-image': 'url("'+o.validNo+'")'});//show invalid icon
					}
				} else {//field is empty (after delete all from it)
					jQuery(fisValidId).css({'background-image': 'none'});	//hide any icon
				}		
			});
		});

		//we send info to database	
		jQuery('#cSend').click(function() {
			
			fTo = o.sendToEmail;
			fSubject = o.strSubject;
			fName = jQuery('#cName').val();
			fEmail = jQuery('#cEmail').val();
			fPhone = jQuery('#cPhone').val();
			fRoom = jQuery('#cRoom').val();
			fFromDate = jQuery('#cFromDate').val();
			fToDate = jQuery('#cToDate').val();
			fMessage = jQuery('textarea#cMessage').val();
			fCaptcha = jQuery('#cCaptcha').val();

			complet = (o.isValidcName(fName) && o.isValidcEmail(fEmail) && o.isValidcPhone(fPhone) && o.isValidcFromDate(fFromDate) && o.isValidcToDate(fToDate) && o.isValidcMessage(fMessage) && (fCaptcha == answer) );
		if(complet){
				var emailForm = o.strName+':'+fName+'\n';
				emailForm += o.strEmail+':'+fEmail+'\n';
				emailForm += o.strPhone+':'+fPhone+'\n';
				emailForm += o.strRoom+':'+fRoom+'\n';
				emailForm += o.strFromDate+':'+fFromDate+'\n';
				emailForm += o.strToDate+':'+fToDate+'\n';
				emailForm += o.strMessage+':'+fMessage+'\n\n';

				$.post("send_mail.php","name="+fName+"&email="+fEmail+"&to="+fTo+"&subject="+fSubject+"&message="+emailForm, function(test) {
					if(test){
						alert(o.send_failure);
					}else{
						alert(o.send_success);
					}
				});
		}else{ 
				alert(o.strNotComplet);
		}
		
		});	

		});//end this.each
	}//end fn.extend.function
});//end fn.extend
})(jQuery);//end plugin


