// ###### Check functions ####################################################################################
function trim(string)
{
    return string.replace(/(^\s+)|(\s+$)/g, "");
}

function checkUsername(usernameStr)
{
 var rex = new RegExp("^[A-Za-z0-9_-]{4,}$", "i");
    if(!rex.test(usernameStr))
    {
     return false;
    }
  return true;
}

function checkIsIntNumberCorrect(sNumber)
{
	var re = new RegExp("^(\\d)+$");
	var ares = re.exec(sNumber); 
	if ( null == ares )
	{
		return false;
	}

	return true;
}

function checkIsDoubleNumberCorrect(sNumber)
{
	var re = new RegExp("^-?(\\d)+(\\.(\\d)+)?$");
	var ares = re.exec(sNumber);
	if ( null == ares )
	{
		return false;
	}

	return true;
}

function checkIsUnsignedDoubleNumberCorrect(sNumber)
{
	var re = new RegExp("^(\\d)+(\\.(\\d)+)?$");
	var ares = re.exec(sNumber); 
	if ( null == ares )
	{
		return false;
	}

	return true;
}

function checkEmail(sEmail)
{
	var re_check_email = new RegExp("[A-Za-z0-9_]+([-+.][A-Za-z0-9_-]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\\.[A-Za-z0-9_]{2,}([-.][A-Za-z0-9_]+)*");
	var ares = re_check_email.exec(sEmail);
	var res = true;
	if( ares == null )
	{
		res = false;
	}

	return res;
}

// ###### Output text functions ###############################################################################

function priceFormat(value)
{
 	var ValueStr = new String( value );
	var ind = ValueStr.lastIndexOf(".");
	// xxxx.xx
	if ( ind >= 0 )
	{
		if ( ind == ValueStr.length - 2 )
		{
			ValueStr += "0";
		}
	
		if ( ind < ValueStr.length - 3 )
		{
			ValueStr = ValueStr.substr(0, ind + 3);
		}
	}
	else
	{
		ValueStr += ".00";
	}
	// xxxx.xx
	
	// x,xxx.xx
	ind = ValueStr.lastIndexOf(".");
	if ( ind >= 4 )
	{
		ValueStr = ValueStr.substr(0, ind - 3) + "," + ValueStr.substr(ind - 3, 6);
	}
	// x,xxx.xx
	return ValueStr;
}

// ###### Ajax syncronized functions ###############################################################################
var url_next_syncronized = '';

function loadurlSyncronized(url_first, url_next, obj_output) 
{
    var url_first = url_first.split('?');
    var url_next = url_next.split('?');
	$.ajax({
		type: "POST",
                url: url_first[0],
                data: url_first[1],
		dataType: "html",
                beforeSend: function()
   		{
                    $("#listing").fadeTo("fast", 0.33);
                },
               complete: function()
   		{
                    $("#listing").fadeTo("fast", 1);
                },
		success: function(data_first){ 
			$('#errorMessage').html(data_first);
			$.ajax({
				type: "POST",
                                url: url_next[0],
                                data: url_next[1],
				dataType: "html",
				complete: function(){},
				success: function(data_next){ 
					if (obj_output == null) obj_output = 'listing';
					$('#'+obj_output).html(data_next);
				},
				error: function()
				{
					//alert('Export operation failed!');
				}
			});
		},
		error: function()
		{
			//alert('Export operation failed!');
		}
	});
}

function loadurl(url, obj_output) 
{
	$.ajax({
		type: "POST",
		url: url,
		dataType: "html",
                beforeSend: function()
   		{
                    $("#listing").fadeTo("fast", 0.33);
                },
               complete: function()
   		{
                    $("#listing").fadeTo("fast", 1);
                },
		success: function(data){ 
			if (obj_output == null) obj_output = 'listing';
			$('#'+obj_output).html(data);
		},
		error: function()
		{
			//alert('Export operation failed!');
		}
	});
}

function loadurlListing(dest) 
{
	loadurl(dest);
}

function alertUrl(url) 
{
	$.ajax({
		type: "POST",
		url: url,
		dataType: "html",
		complete: function(){},
		success: function(data){ 
			if (data != '') alert(data);
		},
		error: function()
		{
			//alert('Export operation failed!');
		}
	});
}

// ###### Element view actions ###############################################################################
function loadURLElement(url, obj_output, data) 
{
	var data;
	if (null == data || undefined == data) data = {};	

	$.ajax({
		type: "POST",
		url: url,
		data : data,
		dataType: "html",
                beforeSend: function()
   		{
                    $("#"+obj_output).fadeTo("fast", 0.33);
                },
               complete: function()
   		{
                    $("#"+obj_output).fadeTo("fast", 1);
                },
		success: function(data){ 
			$('#'+obj_output).html(data);
		},
		error: function()
		{
			alert('Export operation failed!');
		}
	});

	$('#'+obj_output).css('display', 'block');
}  

function hideElement(obj_output)
{
//	$('#'+obj_output).fadeOut();
	$('#'+obj_output).css('display', 'none');
	$('#'+obj_output).html("");
}

// ###### Block popup functions ###############################################################################
function updatePopupWindow(url_new)
{
	$('#modalContent').css('display', 'none');
	$('#modalContent').html("");
	$('#modalPreloader').css('display', 'block');
	
	$.ajax({
			type: "POST",
			url: url_new,
		    dataType: "html",
			complete: function(){},
			success: function(data){ 
				$('#modalPreloader').css('display', 'none');
				$('#modalContent').css('display', 'block');
				$('#modalContent').html(data);
			},
			error: function()
			{
				//alert('Export operation failed!');
			}
		});
}

function getBodyScrollTop()
{
	return self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
}

function popupWindow(nWidth, nHeight, url_show)
{
	updatePopupWindow(url_show);

	$('#modalContent').css('display', 'block');

	if (nWidth <= 0) nWidth = $(window).width();

	// show modal window
        $('#body').block({
        message: $('#modalWindow'),
     // disable vertical centering
        centerY: false,
        css:
        {
                            //top:  ($(window).height() - nHeight) /2 + 'px',
                            top: getBodyScrollTop() + 40,
                            left: ($(window).width() - nWidth) /2 + 'px',
                            width: nWidth + 'px',
                            heigth: nHeight + 'px'
                    }
    });
	 $(".blockOverlay").css('height',$(document).height());
}
function closePopup()
{
	$('#modalContent').html("");
	$('#body').unblock({ }); 

}

// ###### Confirm functions ###############################################################################
function confirm_state_change() 
{
	if (confirm('Are you sure you want to change checked items state?')) {
		return true;
	} else {
		return false;
	}
}

function confirm_delete() 
{
	if (confirm('Are you sure you want to remove?')) {
		return true;
	} else {
		return false;
	}
}

// ###### Other functions ###############################################################################
function _onmouseout (_scr, _Img) {
   eval ("document.images." + _Img + ".src = '" + _scr + "'" ) ;
}


function loadurlListingSyncronized(dest) {

    var data;
     	$.ajax({
		   type: "GET",
		   dataType: "html",
		   error: function(response){showMessage('error ' + response.status, 'Error while getting data...');},
		   url: dest,
		   data: data,
		   success: function(response)
               {
//                    hidePopup();
                    $("#listing").html(response);
               }
		});

}


function doSearch(bm, tab_id) {
    var bm, tab_id;
    var search = '';
    //if ($('#search').val())
        search = '&search=' + $('#search').val();
    //window.location.href='index.php?bm='+bm+'&a=10.00&tab_id='+tab_id+'&id=0&search=' + $('#search').val();
    window.location.href='index.php?bm='+$.getUrlVars('bm')+'&a=10.00&tab_id='+tab_id+'&id='+$.getUrlVars('id') + search;
    //loadurlListing('index.php?bm='+getUrlVars()['bm']+'&a=10.00'+tab_id+'&id='+getUrlVars()['id']+'&search=' + $('#search').val() );
}

function initTinyMCE(element)
{
    var element;
       tinyMCE.init({
          mode : "exact",
          elements : element,
          theme : "advanced",
          theme_advanced_buttons1_add_before : "save,newdocument,separator, fontsizeselect",
          theme_advanced_buttons2_add_before: "cut,copy,paste,separator,forecolor,backcolor",
          theme_advanced_toolbar_location : "top",
          theme_advanced_toolbar_align : "left",
          theme_advanced_statusbar_location : "bottom",
          plugi2n_insertdate_dateFormat : "%Y-%m-%d",
          plugi2n_insertdate_timeFormat : "%H:%M:%S",
          file_browser_callback : "fileBrowserCallBack",
          paste_use_dialog : false,
          theme_advanced_resizing : false,
          theme_advanced_resize_horizontal : true,
          theme_advanced_link_targets : "_something=My somthing;_something2=My somthing2;_something3=My somthing3;",
          paste_auto_cleanup_on_paste : true,
          paste_convert_headers_to_strong : false,
          paste_strip_class_attributes : "all",
          paste_remove_spans : false,
          paste_remove_styles : false
     });
}

function initTinyMCE_full(element)
{
    var element;
       tinyMCE.init({
          mode : "exact",
          elements : element,
          theme : "advanced",
          theme_advanced_buttons1_add_before : "save,newdocument,separator, fontsizeselect",
          theme_advanced_buttons2_add_before: "cut,copy,paste,separator,forecolor,backcolor",
          theme_advanced_buttons3_add_before : "ibrowser",
          theme_advanced_toolbar_location : "top",
          theme_advanced_toolbar_align : "left",
          theme_advanced_statusbar_location : "bottom",
          plugi2n_insertdate_dateFormat : "%Y-%m-%d",
          plugi2n_insertdate_timeFormat : "%H:%M:%S",
          //file_browser_callback : "fileBrowserCallBack",
          file_browser_callback : "tinyBrowser",
          paste_use_dialog : false,
          theme_advanced_resizing : false,
          theme_advanced_resize_horizontal : true,
          theme_advanced_link_targets : "_something=My somthing;_something2=My somthing2;_something3=My somthing3;",
          paste_auto_cleanup_on_paste : true,
          paste_convert_headers_to_strong : false,
          paste_strip_class_attributes : "all",
          paste_remove_spans : false,
          paste_remove_styles : false

         // Other options
         // relative_urls : false
     });
}



// Get object of URL parameters
//var allVars = $.getUrlVars();
// Getting URL var by its nam
//var byName = $.getUrlVar('name');
$.extend({
  getUrlVars: function(){
    var hash;
    var vars = new Object();
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

//Reload listing table
function reloadListing()
{
    //var id = 0;
    //var id = $.getUrlVar('id');
    //if (isNaN(id)) id = 0;
    //loadurlListing('index.php?bm='+ $.getUrlVar('bm')+'&a=10.001&id=' + id);

    //var href = window.location.href;
    //var link = href.split('?');
    //loadURLElement('index.php', 'listing', 'tab_id=1&' + link[1]);

    var data = '';
    var params = $.getUrlVars();
    if (params.tab_id) params.a = '10.00' + params.tab_id;
    else params.a = '10.001';
    $.each(params, function(key, value) {
        data += '&' + key + '=' + value;
    });
    data = data.substr(1);
    loadURLElement('index.php', 'listing', data);

}





//FRONTEND
function validateRegisterForm()
{
    var error='';
    if (!checkEmail($("#email").val())) error += 'Incorrect Email\n';
    if ($("#pass1").val()!=$("#pass2").val() || $("#pass1").val()=='') error += 'Incorrect Password\n';
    if (error) {alert(error);return false;}

    return true;
}

function registerUser()
{

    $.ajax({
       type: "POST",
       dataType: "html",
       url: $('#url').val(),
       data: $('#register_form').serialize(),
       beforeSend: function(){},
       complete: function(){},
       success: function(response)
       {
            if (response) { alert(response); } //login error
            else { window.location.href = "/profile"; } //login successfull
       }
    });

    return;
}

function inputShowHideText(obj, text)
{
    var obj, text;
    if (obj.val() == text) obj.val('');

}



