String.prototype.isValidEmail = function() { return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(this));};
$(function () {
    $('form.should-validate').submit(function () {
        reqs = $('.required', this);
        for (var i=0; i < reqs.length; i++) {
            var f = $(reqs[i]);
            var err = '';
            if (f.attr('value')=='') {
                err = "Моля, въвeдете " + $('label[for=' + f.attr('id') + ']').text().replace(/:?\s*\*\s*$/, '').toLowerCase() + ".";
            }
            if (f.hasClass('valid-mail') && !f.attr('value').isValidEmail()) {
                err = "Моля, коректен e-mail адрес";
            }
            if (err.length) {
                alert(err);
                f.focus();
                return false;
            }
        }
        return true;
    });
	
    $('#confirm_order').submit(function() {
    	var msg = $('#confirm_reply').val();
    	if (msg == '') {
    		return false;
    	};
    	$('#confirm_reply').addClass('spin');
    	$('#confirm_reply').attr("disabled", true);
    	
		var url = "/chat";
		if (window.is_dispatcher) {
			url += '?admin=1';
		};
		$.post(
			url, 
			{ 'confirm_post_reply': '1', 'confirm_reply': msg, 'order_id': order_id},
			function(data){
				$('#confirm_reply').removeClass('spin');
    			$('#confirm_reply').removeAttr("disabled");
    			$('#confirm_reply').val('');
				if ( data.status != 'ok') {
					$('#msg-box').append('<div class="comment comment-error"><span class="meta">(' + data.nice_date.toLowerCase() + ')</span><p>error</p></div>');
    				$('#msg-box').scrollTo('max');
					return;
				};
				var comment_class = 'client';
				var sender = "Клиент";
				if (window.is_dispatcher) {
					comment_class = 'admin';
					sender = "Диспечер";
				};
				$('#msg-box').append('<div class="comment ' + comment_class + '-comment"><span class="meta">(' + data.nice_date.toLowerCase() + ') <strong>' + sender + '</strong>:</span><p>' + msg + '</p></div>');
    			$('#msg-box').scrollTo('max');
			},
			"json"
		);
    	return false;
	});
	
	function confirm_get_reply () {
		var url = "/chat";
		if (window.is_dispatcher) {
			url += '?admin=1';
		};
		$.post(
			url, 
			{ confirm_get_reply: '1', 'last_timestamp': last_timestamp, 'order_id': order_id},
			function(data){
				if ( data.status == 'uptodate') {
					return;
				};
				if ( data.status == 'error') {
					$('#msg-box').append('<div class="comment comment-error"><span class="meta">(' + data.nice_date.toLowerCase() + ') </span><p>' + data.err_msg + '</p></div>');
	    			clearInterval(poll_interval);
	    			return;
				};
				if (last_timestamp < data.last_timestamp) {
					window.focus();
				};
				
				last_timestamp = data.last_timestamp;
				var comments = data.comments;
				
				var comment_class = 'admin';
				var sender = "Диспечер";
				if (window.is_dispatcher) {
					comment_class = 'client';
					sender = "Клиент";
				};
				
				for (var ind in comments) {
					$('#msg-box').append('<div class="comment ' + comment_class + '-comment"><span class="meta">(' + comments[ind].nice_date.toLowerCase() + ') <strong>' + sender + '</strong>:</span> <p>' + comments[ind].comment + '</p></div>');
				}
    			$('#msg-box').scrollTo('max');
			},
			"json"
		);
	}
	var order_id = null;
	var poll_interval = null;
	if ( window.poll_replies) {
		$('#msg-box').scrollTo('max');
		last_timestamp = window.timestamp;
		
		order_id = window.location.search.replace(/^\?/, '&').match(/&order=([^&]*)/i);
		if ( !order_id) {
			alert('error');
		} else {
			order_id = order_id[1];
			poll_interval = setInterval(confirm_get_reply, 2000)
		}
	};
});
