function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function initLogin(id) {
	var tmpObj=document.getElementById(id);
	if (tmpObj) {
		tmpObj.onfocus=function () {
			if(this.value==id) this.value="";
		}
		tmpObj.onblur = function () {
			if(this.value=="") this.value=id;
		}
	}
}

function getElementsByBaseTagClass(base, tag, className) { 
    var classPat = new RegExp('\\b'+className+'\\b'); 
    var nodes = base.getElementsByTagName(tag); 
    var matching = []; 
    for (var i = 0; i < nodes.length; i++) { 
        if (classPat.test(nodes[i].className)) { 
            matching.push(nodes[i]); 
        } 
    } 
	return matching; 
}

/*================================================================================================*/
/*START Hover input and image named with _n at the end of name. */

var W3CDOM = (document.createElement && document.getElementsByTagName);
var mouseOvers = new Array();
var mouseOuts = new Array();

function init()
{
	if (!W3CDOM) return;
	/*var nav = document.getElementById('container');*/
	var inputImgs = document.getElementsByTagName('input');
	var imageImgs = document.getElementsByTagName('img');
	var imgs = new Array();
	for (var i=0; i<imageImgs.length; i++) {imgs.push(imageImgs[i]);}
	for (var i=0; i<inputImgs.length; i++) {imgs.push(inputImgs[i]);}
	//alert (imgs.length);
	for (var i=0; i<imgs.length; i++)
	{
		if (imgs[i].src.indexOf('.gif') != -1) // On cible seulement les lments input de type image avec une extension de type .gif
		{			
			// Get image name
			//alert ( (imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).substring(0,(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).lastIndexOf('.')) );
			tmp=(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).substring(0,(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).lastIndexOf('.'));
			
			if ( tmp.indexOf('_') != -1) /* search all img have "_" */
			{
				if (tmp.substring(tmp.lastIndexOf('_')+1) == "n" )
					{
						//alert ( (imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).substring(0,(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).lastIndexOf('.')) );
						imgs[i].onmouseover = mouseGoesOver;
						imgs[i].onmouseout = mouseGoesOut;
						mouseOuts[i] = new Image();
						mouseOuts[i].src = imgs[i].src;
						mouseOvers[i] = new Image();	
						
						/*	
						if (imgs[i].src.lastIndexOf('_') != -1) { mouseOvers[i].src = imgs[i].src.substring(0,imgs[i].src.lastIndexOf('_')) + "_over" + suffix;}
						else { mouseOvers[i].src = imgs[i].src.substring(0,imgs[i].src.lastIndexOf('.')) + "_over" + suffix;}
						*/
						var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
						if (imgs[i].src.lastIndexOf('.') != -1) { mouseOvers[i].src = imgs[i].src.substring(0,imgs[i].src.lastIndexOf('_')) + "_o" + suffix;}
						imgs[i].number = i;
					}
			}
		}
	} //end for
} //end init

function initreset()
{
	if (!W3CDOM) return;
	var imgs = document.getElementsByTagName('img');
	for (var i=0; i<imgs.length; i++)
	{
		if (imgs[i].src.indexOf('.gif') != -1) // On cible seulement les lments input de type image avec une extension de type .gif
		{			
			tmp=(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).substring(0,(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).lastIndexOf('.'));
			
			if ( tmp.indexOf('_') != -1) /* search all img have "_" */
			{
				if (tmp.substring(tmp.lastIndexOf('_')+1) == "o" )
				{
					//alert ( (imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).substring(0,(imgs[i].src.substring(imgs[i].src.lastIndexOf('/') + 1)).lastIndexOf('.')) );
					var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
					var tmpimg= new Image();
						tmpimg.src=imgs[i].src.substring(0,imgs[i].src.lastIndexOf('_')) + "_n.gif";
					imgs[i].src=tmpimg.src;
				}
			}
		}
	} //end for
} //end initreset

var fsub=false;
var mobj;
var osrc="";
function mouseGoesOver(fsub, mEvent) {
	if (checkIt("msie") != 0) { // use in IE
		if (fsub==true) {
			mobj.src=osrc;
			fsub=false;
		} else {
			this.src = mouseOvers[this.number].src;
		}
		osrc=event.srcElement.src;
		mobj=event.srcElement;
	}
	else {	// use in firefox
		if (fsub==true) {
			mobj.src=osrc;
			fsub=false;
		} else if (fsub=='')  {
			osrc=mEvent.target.src;
			mobj=mEvent.target;
		} else {
			this.src = mouseOvers[this.number].src;
		}
	}
}

function mouseGoesOut() {this.src = mouseOuts[this.number].src;	}


var detect = navigator.userAgent.toLowerCase();
var OS,browser,total,thestring;
var version = 0;
function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}
/*END Hover input and image */

/*================================================================================================*/
function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isOP    = false;  // Opera
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "Opera";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isOP = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as Netscape 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }

  s = "MSIE";
  if ((i = ua.indexOf(s))) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
}

var browser = new Browser();

function getPageOffsetLeft(el) {
  var x;
  // Return the x coordinate of an element relative to the page.
  x = el.offsetLeft;
  if (el.offsetParent != null)
    x += getPageOffsetLeft(el.offsetParent);
  return x;
}
function getPageOffsetTop(el) {
  var y;
  // Return the x coordinate of an element relative to the page.
  y = el.offsetTop;
  if (el.offsetParent != null)
    y += getPageOffsetTop(el.offsetParent);
  return y;
}
/* add Array.push if needed */
if(Array.prototype.push == null){
	Array.prototype.push = function(item) {this[this.length] = item; return this.length;}
}

function isEmail(s){
	if (s.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}$/) != -1)
		return true ;
	return false ;
}

function isBlank(s) {
	if(trim(s) == "" ) 
		return true ;
	return false ;
}

function trim(s) {
	return s.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function chkNum(strString)   {  //  check for valid numeric strings 
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;
   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
   		if (strValidChars.indexOf(strChar) == -1) {blnResult = false;}
   }
   return blnResult;
}

function checkContact(frmObj) {
	var fo = frmObj;
	//alert(fo.inquiry.value);
	if (isBlank(fo.fullname.value)) {
		showError(fo,"Full name must not be left blank.","error",fo.fullname);
        return false;
	}
	if (isBlank(fo.email.value)) {
		showError(fo,"Email must not be left blank.","error",fo.email);
        return false;
	}	
	if (!isEmail(fo.email.value)) {
		showError(fo,"Invalid Email format","error",fo.email);
        return false;
	}	
	if (isBlank(fo.phone.value)) {
		showError(fo,"Phone must not be left blank.","error",fo.phone);
        return false;
	}	
	if (fo.subject.value=="") {
		showError(fo,"Subject must not be left blank.","error",fo.subject);
        return false;
	}	
	if (fo.inquiry.value=="") {
		showError(fo,"Inquiry must not be left blank.","error",fo.inquiry);
        return false;
	}	
	return true;
}

function showError(formobj,err_str,err_div,input) {
	var x = getPageOffsetLeft(input);
	var y = getPageOffsetTop(input);
	var objCon = MM_findObj(err_div+"Content");
	var divObj = MM_findObj(err_div);
	if (objCon != null) {
		objCon.innerHTML="<p>"+err_str+"</p>";
	}
	if (divObj != null) {
		divObj.style.left = (x-100)+"px";
		divObj.style.top = y+10+"px";
		divObj.style.visibility = "visible";
	}
	
	if (browser.isIE) {
		var iframeObj = MM_findObj(err_div+"Iframe");
		if (iframeObj != null && divObj!=null) {
			iframeObj.style.width = divObj.offsetWidth+"px";
			iframeObj.style.height = divObj.offsetHeight+"px";
			iframeObj.style.left = divObj.style.left;
			iframeObj.style.top = divObj.style.top;
			iframeObj.style.visibility = "visible";
		}
	}
	//resetFrmFeedBack(formobj);
	input.focus();
	input.style.backgroundColor="#ebebeb";
	return false;
}

function closeError(err_div) {
	var divObj=MM_findObj(err_div);
	if (divObj!=null) {
		divObj.style.visibility="hidden";
	}
	if (browser.isIE) {
		var iframeObj = MM_findObj(err_div+"Iframe");
		if (iframeObj!=null) {
			iframeObj.style.visibility="hidden";
		}
	}
}


/*================================================================================================*/
/* Functions */

function showSub (id, ObjArr) {	
	if (ObjArr.length == 1){
        ObjArr=ObjArr[0];
		if (ObjArr.style.display=="") {
			ObjArr.style.display="block";
		} else if (ObjArr.style.display=="none") {
			ObjArr.style.display="block";
		} else if (ObjArr.style.display=="block") {
			ObjArr.style.display="none";
		}
	}
	else{
		for (i=0; i<ObjArr.length; i++){
			if (i != id) ObjArr[i].style.display = "none";
			ObjArr[id].style.display="block";
		}
	}
}

function hili (id, ObjArr) {
	for (i=0; i<ObjArr.length; i++){
		if (i != id) ObjArr[i].style.color= "#e28c05";
		ObjArr[id].style.color="#e81120";
	}
}

function toggleNews(obj) {
	if (obj.className=="strongLink2") {
		obj.className="strongLink21";	
	} else {
		obj.className="strongLink2";					
	}
}



function showHideDiv(btnId, divId, dx, dy) {
	if (!W3CDOM) return;
	var btnObj,btnX,btnY,divObj,divStyle;
	if ((btnObj=MM_findObj(btnId))==null) return;
	if ((divObj=MM_findObj(divId))==null) return;
	if (!(divStyle=divObj.style)) return;
	btnX=getPageOffsetLeft(btnObj);
	btnY=getPageOffsetTop(btnObj);
	//alert("x:"+btnX+"  /  y:"+btnY);
	if (divStyle.visibility!="visible") {
		divStyle.left=(btnX+dx)+"px";
		divStyle.top=(btnY+dy)+"px";
		divStyle.visibility="visible";
		return "show";
	} else {
		divStyle.left="0px";
		divStyle.top="0px";
		divStyle.visibility="hidden";
		return "hide";
	}
}

function hideDiv(divId, x, y) {
	if (!W3CDOM) return;
	var divStyle;
	if ((divObj=MM_findObj(divId))==null) return;
	if (!(divStyle=divObj.style)) return;
	divStyle.visibility="hidden";
	//divStyle.left="0px";
	//divStyle.top="0px";
}

/*-----------------------------------------------------------------------------------------------*/
function showLink(objId, divid) {
	showHideDiv(objId, divid, -104, 5);
}

/*-----------------------------------------------------------------------------------------------*/
function hideLink(divid) {
	hideDiv(divid, 0, 0);
}

/*-----------------------------------------------------------------------------------------------*/
/* Moodle Functions */
/*-----------------------------------------------------------------------------------------------*/
function moChkSignUp(frmObj) {
	var fo = frmObj;
	//alert(fo.inquiry.value);
	if (isBlank(fo.username.value)) {
		alert ("Please enter your username.");
		fo.username.focus();
        return false;
	}
	if (isBlank(fo.password.value)) {
		alert ("Please enter your password.");
		fo.password.focus();
        return false;
	}
	if (isBlank(fo.email.value)) {
		alert ("Please enter your email.");
		fo.email.focus();
        return false;
	}	
	if (!isEmail(fo.email.value)) {
		alert ("Invalid Email format");
		fo.email.focus();
        return false;
	}	
	if (isBlank(fo.email2.value)) {
		alert ("Please enter again your email.");
		fo.email2.focus();
        return false;
	}
	if (!isEmail(fo.email2.value)) {
		alert ("Invalid Email format");
		fo.email2.focus();
        return false;
	}	
	if (fo.email2.value != fo.email.value) {
		alert ("Your email is not correct");
		fo.email2.focus();
		return false;
	}
	if (isBlank(fo.firstname.value)) {
		alert ("Please enter your firstname");
		fo.firstname.focus();
		return false;
	}	
	if (isBlank(fo.lastname.value)) {
		alert ("Please enter your lastname");
		fo.lastname.focus();
		return false;
	}
	if (isBlank(fo.city.value)) {
		alert ("Please enter your city");
		fo.city.focus();
		return false;
	}
	if (isBlank(fo.country.value)) {
		alert ("Please enter your country");
		fo.country.focus();
		return false;
	}

}


function moChkChangePass(frmObj) {
	var fo = frmObj;
	if (isBlank(fo.password.value)) {
		alert ("Please enter your password.");
		fo.password.focus();
        return false;
	}
	if (isBlank(fo.newpassword1.value)) {
		alert ("Please enter new password.");
		fo.newpassword1.focus();
        return false;
	}
	if (isBlank(fo.newpassword2.value)) {
		alert ("Please enter again new password");
		fo.newpassword2.focus();
		return false;
	}
	if (fo.newpassword2.value!=fo.newpassword1.value) {
		alert ("Your new password is not correct.");
		fo.newpassword2.focus();
		return false;
	}
}

function moChkEmailAlert(frmObj) {
	var fo = frmObj;
	if (isBlank(fo.email.value)) {
		alert ("Please enter your email.");
		fo.email.focus();
        return false;
	}
	if (!isEmail(fo.email.value)) {
		alert ("Invalid Email format");
		fo.email.focus();
        return false;
	}	
}

function moChkForgotPass(frmObj) {
	var fo = frmObj;
	if (isBlank(fo.username.value) && (isBlank(fo.email.value))) {
		alert ("Please enter your username or your email.");
		fo.username.focus();
        return false;
	}
	
	if (!isEmail(fo.email.value) && !isBlank(fo.email.value) ) {
		alert ("Invalid Email format.");
		fo.email.focus();
        return false;
	}	
	
}
