(function(jQuery){
 	jQuery.fn.extend({contact: function(options) {
		//set the default values
		var defaults = {
			head: 'Contact', //header for page
			sendToName : 'Ovidiu Pop, matricks the one, office of universe',//list of names for emails
			sendToEmail : 'pc_brainy@yahoo.com, matricks@webspider.ro, office@binary-technology.ro',//list of emails addresses
			strName : 'Numele', //string for name 
			strEmail : 'E-mail',//string for email
			strTo : 'Catre', //string for to
			strSubject : 'Subiect', //string for subject
			strMessage : 'Mesaj', //string for message
			strSend : 'Trimite', //string for send
			rows: 10, //number of rows for textarea
			validYes : 'imgc/validYes.png',//url for valid icon
			validNo : 'imgc/validNo.png', //url for invalid icon
			captcha_limit : 5,//maximum number for captcha 
			send_success:'Multumim ca ne-ati contactat!', //string for successful sent email
			send_failure : 'In timpul expedierii a avut loc o eroare!',//string for failured sent email
			valid_name : 3,//minimum chars for valid name
			valid_subject : 1,//minimum chars for valid subject
			valid_message : 1,//minimum chars for valid message

		//prepare html form 
		make_form : function(){
			cForm = '';
			cForm += '<div class="contact_form">';
// 			cForm += '<h3>'+options.head+'</h3><br>';

			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>'+options.strName+':</div>';
			cForm += '<div class="row_input_contact"><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 class="row_info_contact"><span style="color:red;">* </span>'+options.strEmail+':</div>';
			cForm += '<div class="row_input_contact"><input type="text" id="cEmail" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcEmail"></span></div>';
	
			//load select with list of names and addresses 
			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>'+options.strTo+':</div>';
			cForm += '<div class="row_input_contact"><select id="cTo">';
				ToName = options.sendToName.split(",");
				ToEmail = options.sendToEmail.split(",");
				$.each(ToName, function(i, n){
					cForm += '<option  value="'+ToEmail[i].replace(" ", "")+'">'+n+'</option>';
				});
			cForm += '</select>';
			cForm += '</div>';
			///////////////////////////////////////////////
	
			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>'+options.strSubject+':</div>';
			cForm += '<div class="row_input_contact"><input type="text" id="cSubject" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcSubject"></span></div>';

	
			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>'+options.strMessage+':</div>';
			cForm += '<div class="row_input_contact"><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 class="row_info_contact"><span style="color:red;">* </span>Captcha: <span id="captcha"> </span>';
			cForm += '<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 class="row_info_contact"><input type="button" class="submit" id="cSend" value="'+options.strSend+'"></div>';
	
			cForm += '<br>';
			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);
		},

		//subject validation
		isValidcSubject : function(cSubject) {
			var ln = cSubject.length;
			if(ln > options.valid_subject -1)return true;
			return false;
		},

		//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', 'cSubject', '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() {
			fName = jQuery('#cName').val();
			fEmail = jQuery('#cEmail').val();
			fTo = jQuery('#cTo').val();
			fSubject = jQuery('#cSubject').val();
			fMessage = jQuery('textarea#cMessage').val();
			fCaptcha = jQuery('#cCaptcha').val();
			complet = (o.isValidcEmail(fEmail) && o.isValidcName(fName) && o.isValidcMessage(fMessage) && (fCaptcha == answer) && o.isValidcSubject(fSubject));
			if(complet){
				$.post("send_mail.php","name="+fName+"&email="+fEmail+"&to="+fTo+"&subject="+fSubject+"&message="+fMessage, function(test) {
					if(test){
						alert(o.send_failure);
					}else{
						alert(o.send_success);
					}
				});
			}else{ 
				alert("incomplet");
				}
		});	

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


