function checkEmail(email) {
	var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}([.][a-zA-Z]{2,4})+$/
	return (reg.exec(email)!=null)
}

function checkDate(date) {
	var reg = /^(19|20)\d\d([- \/.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
	return (reg.exec(date)!=null)
}

function checkUrl(url)
{
	var reg = new RegExp();
	reg.compile("^[A-Za-z]+:\/\/[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
	if (!reg.test(url))
		return false;
	else
		return true;
}

function checkUrlCool(url)
{
	var reg = new RegExp();
	reg.compile("^(#)|((([A-Za-z]+:\/\/)|([Ww]{3}\\.))[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+)$");
	return reg.test(url);
}

function checkExtension(fileName, allowedExt){
	return (allowedExt.indexOf(fileName.substring(fileName.indexOf(".")+1, fileName.length).toLowerCase()) != -1);
}

function unlockRefUrl(id) {
	if($(id).disabled){
		$(id).disabled = "";
	}
	else{
		$(id).disabled = "disabled";
	}
}

function modifyRefUrl() {
	// this = obj Type
	var ref_url_input = $(CanvasEditor.prefixController+"["+this.idLang+"][ref_url]")

	if(ref_url_input.disabled || ref_url_input == $(this.id)) {
		var url = this.getValue();
		url = refUrl(url);
		ref_url_input.value = url;
	}
}


function refUrl(url){
	url = url.replace(new RegExp('\<.+?\>',"g"), '');

	 //switch accents to simpler text
	url = url.replace(new RegExp("É","g"),"e");
	url = url.replace(new RegExp("é","g"),"e");
	url = url.replace(new RegExp("è","g"),"e");
	url = url.replace(new RegExp("ë","g"),"e");
	url = url.replace(new RegExp("ê","g"),"e");
	url = url.replace(new RegExp("À","g"),"a");
	url = url.replace(new RegExp("à","g"),"a");
	url = url.replace(new RegExp("ä","g"),"a");
	url = url.replace(new RegExp("â","g"),"a");
	url = url.replace(new RegExp("Ù","g"),"u");
	url = url.replace(new RegExp("ù","g"),"u");
	url = url.replace(new RegExp("ü","g"),"u");
	url = url.replace(new RegExp("û","g"),"u");
	url = url.replace(new RegExp("ö","g"),"o");
	url = url.replace(new RegExp("ô","g"),"o");
	url = url.replace(new RegExp("ï","g"),"i");
	url = url.replace(new RegExp("î","g"),"i");
	url = url.replace(new RegExp("ç","g"),"c");

	url = url.toLowerCase();
	//replace non alpha-numerical chars sequences by -
	url =  url.replace(new RegExp('([^a-z|A-Z|0-9|-])+',"g"), '-');
	//remove dashes nplications
	url =  url.replace(new RegExp('([-])+',"g"), '-');
	// trim "-"
	url = url.replace(/^[-]+/g,'').replace(/[-]+$/g,'');

	return url;
}


function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else
      if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else
      if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}


function toBoolean(value){
	switch(typeof(value)){
		case 'string' :  value = (value=="true"); break;
		case 'number' :  value = (value==1); break;
		case 'undefined' : value = false; break;
		default : value = value; break;
	}
	return value;
}

function enterPage(e){
	if(window.event)
        //IE
        key = window.event.keyCode;
	else if(e)
	    //firefox
	    key = e.which;

	if (13 == key)
		validPage();

}

function setScrollPosition(pos) {
	if(document.documentElement)
		document.documentElement.scrollTop = pos
	if(document.body)
		document.body.scrollTop = pos
}


/*
 *
 * PRELOAD IMAGE
 *    ROLLOVER
 *
 *  */

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = true;
function preloadImages() {
	if (document.images) {
		preloadFlag = true;
	}
}

function set_published(el, table, id){
	var is_active = 0;
	if(el.checked)
		is_active = el.value;
	xajax__set_published(table, id, is_active);
}

// action = "show" / "hide"
function hideShowAllSelect(action){
	var selectList = document.getElementsByTagName("select");

	for(var i=0, len = selectList.length; i<len; i++){
		try{
			selectList[i][action].call(selectList[i]);
		}
		catch(e){}
	}


}

/*
 *  **************
 *  */

/* TEST NAVIGATEURS */
/*
	-- Fonctions :
	--- BrowserTest.isIe()
	--- BrowserTest.isNetscape()
	--- BrowserTest.isOpera()
	--- BrowserTest.isSafari()
*/
/* */
	var BrowserTest = function(){}
	BrowserTest.bName = navigator.appName;
	BrowserTest.bVer = parseInt(navigator.appVersion);

	function isIe(){if (BrowserTest.bName == "Microsoft Internet Explorer") return true;}
	BrowserTest.isIe = isIe;

	function isNetscape(){if (BrowserTest.bName == "Netscape") return true;}
	BrowserTest.isNetscape = isNetscape;

	function isOpera(){if (BrowserTest.bName == "Opera") return true;}
	BrowserTest.isOpera = isOpera;

	function isSafari(){if (navigator.vendor) return true;}
	BrowserTest.isSafari = isSafari;


/* */



function submitImagecrop (file_path, site_url, unique_key)
{
	if(window.hiddenFrame.document.getElementById("newImage")){
		window.hiddenFrame.document.getElementById("newImage").value = 0;
	}
	document.frm.action = site_url + 'admin/imagecrop/imagecropSet' ;
	document.frm.target = 'hiddenFrame';
	document.frm.submit();

	setTimeout('load_imagecrop_popup("' + file_path + '|' + site_url + '|' + unique_key + '")', 2000);
}
function load_imagecrop_popup(params)
{
	param = params.split('|');
	file_path = param[0];
	site_url = param[1];
	unique_key = param[2];

	if(!window.hiddenFrame.document.getElementById("newImage") || !(window.hiddenFrame.document.getElementById("newImage") && window.hiddenFrame.document.getElementById("newImage").value == 1)){
		setTimeout('load_imagecrop_popup("' + file_path + '|' + site_url + '|' + unique_key + '")', 2000);
	}
	else{
		imageSource = window.hiddenFrame.document.getElementById("imagePath").value;

		imageSourceId = null;
		imageParentId = null;
		typeCrop = 'advertise';

		$("hidden_popup_crop").observe('ImageCrop:validBack', function(event){
			$("hidden_popup_crop").stopObserving('ImageCrop:validBack');
			var r = event.memo.src;

			document.getElementById(file_path).value = r;
			document.getElementById('preview_' +file_path).innerHTML = '<img src="' + site_url + 'upload/' + r + '" border="0">';
		})

		new ImageCrop("hidden_popup_crop", imageSource, imageSourceId, imageParentId, typeCrop, { imagePath: url_site+"temp/", imageFolder: "./temp" });
	}
}