(function(jQuery){
 	jQuery.fn.extend({contact: function(options) {
		//set the default values
		var defaults = {
			head: 'Contact', //header for page
			sendToName : '',//list of names for emails
			sendToEmail : '',//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 : '../img/validYes.png',//url for valid icon
			validNo : '../img/validNo.png', //url for invalid icon
			fpost: 'http://www.domeniu.ro/include/functii.php',//url for ajax functions page
			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 : 2,//minimum chars for valid subject
			valid_message : 10,//minimum chars for valid message
			prefix: '_contact',

		//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'+ options.prefix + '" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcName'+options.prefix+'"></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'+options.prefix+'" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcEmail'+options.prefix+'"></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'+options.prefix+'">';
				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'+ options.prefix + '" /><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcSubject'+options.prefix+'"></span></div>';

	
			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>'+options.strMessage+':</div>';
			cForm += '<div class="row_input_contact"><textarea cols="40" rows="'+options.rows+'" id="cMessage'+options.prefix+'"></textarea><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcMessage'+options.prefix+'"></span></div>';
	
			cForm += '<div class="row_info_contact"><span style="color:red;">* </span>Calculati: <span id="captcha'+options.prefix+'"> </span>';
			cForm += '<input type="text" style="width:30px;" id="cCaptcha'+options.prefix+'"><span style="margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px;" id="isValidcCaptcha'+options.prefix+'"></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' + o.prefix).html(first_number+' - ' +second_number  + ' = ');
		}else{
			answer = first_number + second_number;
			jQuery('#captcha' + o.prefix).html(first_number+' + ' +second_number + ' = ');
		}


		var checkFields = ['cName', 'cEmail', 'cSubject', 'cMessage', 'cCaptcha'];//checkable fields

		jQuery.each(checkFields, function(i,n){
			var fItemID = '#'+ n + o.prefix;//#cName, #CEmail, #cSubject

			jQuery(fItemID).keyup(function(){
				
				fVal = jQuery(fItemID).val();//value of checkable field
				fFunction = 'o.isValid' + n; //o.isValidName, o.isValidEmail, o.isValidCaptcha
				fisValidId = '#isValid' + n + options.prefix; //#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'+ options.prefix).val();
			fEmail = jQuery('#cEmail'+ options.prefix).val();
			fTo = jQuery('#cTo'+ options.prefix + ' option:selected').val();
			fSubject = jQuery('#cSubject'+ options.prefix).val();
			fMessage = jQuery('textarea#cMessage'+ options.prefix).val();
			fCaptcha = jQuery('#cCaptcha'+ options.prefix).val();
			complet = (o.isValidcEmail(fEmail) && o.isValidcName(fName) && o.isValidcMessage(fMessage) && (fCaptcha == answer) && o.isValidcSubject(fSubject));

			if(complet){
			$.post(options.fpost,"function=send_email_contact&arg1="+fName+"&arg2="+fEmail+"&arg3="+fTo+"&arg4="+fSubject+"&arg5="+fMessage, function(test) {
				alert(test);
// 				if(test){
// 					alert(o.send_failure);
// 				}else{
// 					alert(o.send_success);
// 				}
			});
			}else{ 
				alert("Exista campuri necompletate");
			}
		});	

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


