function openURL() {
   selInd = document.theForm.aaa.selectedIndex;
   goURL = document.theForm.aaa.options[selInd].value;
   top.location.href = goURL;
}

/* easytoggle2.js
   - Simon Willison, 5th November 2003
   - See http://simon.incutio.com/archive/2003/11/06/easytoggle
*/

addEvent(window, 'load', et_init);

var et_toggleElements = [];

/* Initialisation */
function et_init() {
    var i, link, id, target, first;
    first = true;
    for (i = 0; (link = document.links[i]); i++) {
        if (/\btoggle\b/.exec(link.className)) {
            id = link.href.split('#')[1];
            target = document.getElementById(id);
            et_toggleElements[et_toggleElements.length] = target;
            if (first) {
                first = false;
            } else {
                target.style.display = 'none';
            }
            link.onclick = et_toggle;
        }
    }
}

function et_toggle(e) {
    /* Adapted from http://www.quirksmode.org/js/events_properties.html */
    if (typeof e == 'undefined') {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
        source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
        source = e.srcElement;
    } else {
        return true;
    }
    /* For most browsers, targ would now be a link element; Safari however
       returns a text node so we need to check the node type to make sure */
    if (source.nodeType == 3) {
        source = source.parentNode;
    }
    var id = source.href.split('#')[1];
    var elem;
    for (var i = 0; (elem = et_toggleElements[i]); i++) {
        if (elem.id != id) {
            elem.style.display = 'none';
        } else {
            elem.style.display = 'block';
        }
    }
    return false;
}

var editFieldCount = 0;

function addEditField2(containerId, arrayName, shortText,  initialValue,typeclass,imgsrc) {
   var newField = document.createElement("div");
   var newText = document.createTextNode(shortText);
   //newField.appendChild(newText);
   newField.setAttribute("id", editFieldCount);

   var newInput = document.createElement("input");
   newInput.setAttribute("type", "text");
   newInput.setAttribute("name", arrayName + "[]");
   newInput.setAttribute("class", typeclass);
   newInput.setAttribute("value", initialValue);
   newField.appendChild(newInput);
   
   var newDelButton = document.createElement("img");
   newDelButton.setAttribute("src",imgsrc);
   newDelButton.setAttribute("onclick", "removeEditField('" + containerId + "','" + editFieldCount + "')");
   newDelButton.setAttribute("value", "-");
   newField.appendChild(newDelButton);
   
   var bodyRef = document.getElementById(containerId);
   bodyRef.appendChild(newField);
   editFieldCount++;
}


function addEditField2(containerId, arrayName, shortText,  initialValue,typeclass,imgsrc) {
   var newField = document.createElement("div");
   var newText = document.createTextNode(shortText);
   //newField.appendChild(newText);
   newField.setAttribute("id", editFieldCount);

   var newInput = document.createElement("input");
   newInput.setAttribute("type", "text");
   newInput.setAttribute("name", arrayName + "[]");
   newInput.setAttribute("class", typeclass);
   newInput.setAttribute("value", initialValue);
   newField.appendChild(newInput);
   
   var newDelButton = document.createElement("img");
   newDelButton.setAttribute("src",imgsrc);
   newDelButton.setAttribute("onclick", "removeEditField('" + containerId + "','" + editFieldCount + "')");
   newDelButton.setAttribute("value", "-");
   newField.appendChild(newDelButton);
   
   var bodyRef = document.getElementById(containerId);
   bodyRef.appendChild(newField);
   editFieldCount++;
}


function removeEditField(containerId, fieldId) {
   e = document.getElementById(containerId);
   e_child = document.getElementById(fieldId);
   inputF = e_child.getElementsByTagName("input");
   inputF[0].setAttribute('name','goaway');   //Safari hack
   var kids = e_child.childNodes;
   var numkids = kids.length;
   for(var i = numkids-1; i >= 0; i--) {
      e_child.removeChild(kids[i]);
   }
   
   e.removeChild(e_child);
}


/* Thanks to Scott Andrew */
function addEvent(obj, evType, fn){
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
	    return false;
    }
}


/*
David Mezkiriz To confirm delete action in database
*/
/**
 * Displays an confirmation box beforme to submit a "DELETE" query.
 * This function is called while clicking links
 *
 * @param   object   the link
 *
 * @return  boolean  whether to run the query or not
 */
function confirmDelete(theLink){
    // Confirmation is not required in the configuration file
    var theSqlQuery = "Are you sure you want to delete it?";
    var confirmMsg = "Confirmation Message";
    var fullmess = confirmMsg + ' :\n' + theSqlQuery;
    if (confirm(fullmess))
	    return true;
    else 
	    return false;

} // end of the 'confirmLink()' function


/*
David Mezkiriz (Insert Job Experience, this function allows to submit to insert)
*/
/**
 * Displays an confirmation box beforme to submit a "DELETE" query.
 * This function is called while clicking links
 *
 * @param   object   document
 *
 */
function insertCompany(toset){
	//document.edit.action = "/register-search";
	//document.edit.submit();
	var url = "/register-search?action=edit&subaction=startsearch&to_set=" + toset;
	document.location.href = url;
	
} // end of the 'insertCompany()' function


/*
David Mezkiriz (Submit form data fields)
*/
function sendformvalues(typeoflink,offsetval,goval) {
/*
	switch (typeoflink) {
	   case 1:
	   //[ <a href="{$filename}?offset={$i}&amp;go={$go}">{$smarty.section.inc.rownum}</a> ]
	   break;
	   case 2:
	   //[ <a href="{$filename}?offset={$next}&amp;go={$go}">{localize tag="Next"}</a> &gt; ]
	   break;
	   case 3:
	   //[ &lt; <a href="{$filename}?offset={$prev}&amp;go={$go}">{localize tag="Previous"}</a> ]
	   break;
	   default:
   }
*/
   document.usersearch.offset.value = offsetval;
   document.usersearch.go.value = goval;
   document.usersearch.pagination.value = "yes";
   document.usersearch.submit();
}

//David Mezkiriz. Reset profile image
function resetImage(theForm) {
   var nav = document.getElementById('imageurl');
   //var imagefile = document.getElementById('imagefile');
   nav.src = "style/img/nofoto2.gif";
   //imagefile.value = "";
   document.forms[theForm].elements.pictureurl.value = "";
   return false;
}


function loadMyImage(theForm) {
	var imagepath = "/home/dmo/fotoDavid.jpg";
	document.forms[theForm].elements.imagefile.value = imagefile;
}

//David Mezkiriz. Set profile image into hidden field
function setImage(theForm) {
   //var nav = document.getElementById('imageurl');
   //var img = document.getElementById('imagefile');
   //var imagefile = document.getElementById('imagefile');
   //imagefile.value = "";
   //var newimg = document.forms[theForm].elements.imagefile.value;
   //newImage(newimg);
   document.forms[theForm].elements.pictureurl.value = document.forms[theForm].elements.imagefile.value;
   return false;
}

function newImage( imgSrc ){

 var imgName = new Image(imgSrc);
 var nav = document.getElementById('imageurl');
 nav.src = imgName.src;
}



//David Mezkiriz. Detecting messages checked to be removed from Internal Post, those concerning
// to Received Messages
function detectMess(theForm,numField) {
   var theSqlQuery = "Are you sure you want to delete it?";
   var confirmMsg = "Confirmation Message";
   var fullmess = confirmMsg + ' :\n' + theSqlQuery;
   var deleteconfirmation = "0";
   if (confirm(fullmess))
           deleteconfirmation = "1";
	
   if (deleteconfirmation == "1") {
	   var num_mess = document.forms[theForm].elements[numField].value;
	   
	   document.forms[theForm].elements.delete_num.value = 0;
	   for (var i=0; i<num_mess;i++) {
		   var j = "id" + i;
		   var obj=document.getElementById(j);
		   
		   if (obj.checked){
			   var inc = document.forms[theForm].elements.delete_num.value;
			   inc++;
			   document.forms[theForm].elements.delete_num.value = inc;
		   }
	   }
	   document.forms[theForm].submit();
   }
}



//David Mezkiriz. Detecting message checked to be replied from Internal Post, those concerning
// to received messages.
function replyMess(theForm,numField) {
	   var num_mess = document.forms[theForm].elements[numField].value;
	   var numreply = 0;
	   var inc = 0;
	   var messageindex = 0;

	   document.forms[theForm].elements.delete_num.value = 0;
	   for (var i=0; i<num_mess;i++) {
		   var j = "id" + i;
		   var obj=document.getElementById(j);
		   
		   if (obj.checked){
			   inc = document.forms[theForm].elements.delete_num.value;
			   inc++;
			   numreply++;
			   messageindex = i;
			   document.forms[theForm].elements.delete_num.value = inc;
		   }
	   }

	   if (numreply > 1) {//More than one messages selected
		   alert('Sorry, but you can only reply to a single message');
	   } else if (numreply == 0) {//No messages selected
		   alert("Sorry, but you haven't selected any message");
	   } else {
		   document.forms[theForm].action.value = 'reply';
		   document.forms[theForm].reply_post = '';
		   document.forms[theForm].message_selected.value = messageindex;
		   document.forms[theForm].byjavascript.value = 'yes';
		   document.forms[theForm].submit();
	   }
}


//David Mezkiriz. Detecting message checked to be replied from Internal Post, those concerning
// to sent messages.
function replySentMess(theForm,numField) {
	   var num_mess = document.forms[theForm].elements[numField].value;
	   var numreply = 0;
	   var inc = 0;
	   var messageindex = 0;

	   document.forms[theForm].elements.delete_num.value = 0;
	   for (var i=0; i<num_mess;i++) {
		   var j = "id" + i;
		   var obj=document.getElementById(j);
		   
		   if (obj.checked){
			   inc = document.forms[theForm].elements.delete_num.value;
			   inc++;
			   numreply++;
			   messageindex = i;
			   document.forms[theForm].elements.delete_num.value = inc;
		   }
	   }

	   if (numreply > 1) {//More than one messages selected
		   alert('Sorry, but you can only reply to a single message');
	   } else if (numreply == 0) {//No messages selected
		   alert("Sorry, but you haven't selected any message");
	   } else {
		   document.forms[theForm].action.value = 're_send';
		   document.forms[theForm].delete_post.value = 'reply';	
		   document.forms[theForm].message_selected.value = messageindex;
		   document.forms[theForm].submit();
	   }
}






function check_dataPI(theForm){
//Using to validate data into edit_personaldata
var checkstr = "0123456789";
var DateField = document.getElementById('birthdate');
var Datevalue = "";
var DateTemp = "";
var seperator = "/";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;

   err = 0;
   DateValue = document.forms[theForm].elements.birthdate.value;

   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;

   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */

   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
      return true;
   }
   /* Error-message if err != 0 */
   else {
      alert("Date is incorrect!. Use this format dd/mm/YYYY");
      return false;
   }
}

function check_email(theForm) {
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	var e = document.forms[theForm].elements.email.value;
	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return false;
		}	
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return false;		
		} 
	}

}

//David Mezkiriz. Submiting form after being validated data
function submitformafterval(theForm) {
	//if (check_dataPI(theForm) && check_email(theForm)){ 
	if (check_email(theForm)){ 
		document.forms[theForm].submit();
	} else {
		return false;
	}
}

//David Mezkiriz. Submiting form after being validated data
function validateDataPersonalData(theForm) {
	if (check_dataPI(theForm) && check_email(theForm)) {
		alert('pues mando entonces..');
		   document.forms[theForm].submit();
	} else {
		alert('no');
		return false;
	}
}

//David Mezkiriz. Submitting form data
function submitform(theForm) {
	document.forms[theForm].submit();
}


//David Mezkiriz. Submiting form data
function resetform(theForm) {
	document.forms[theForm].reset();
	return false;
}


//David Mezkiriz. Submiting form data
function goTo(theForm,newpage) {
	//Unable set company if user select it from combo box
	document.forms[theForm].c_company.selectedIndex = 0;
	document.forms[theForm].c_page.value = newpage;
	document.forms[theForm].goon.value = "";
	document.forms[theForm].submit();
}
//David Mezkiriz. Same as before function but for Education Centers. 
//Submiting form data
function goToSchool(theForm,newpage) {
	//Unable set company if user select it from combo box
	//var objcombo = document.getElementById('s_educenter');
	//objcombo.selectedIndex = 0;
	document.forms[theForm].s_educenter.selectedIndex = 0;
	document.forms[theForm].s_page.value = newpage;
	document.forms[theForm].goon.value = "";	
	document.forms[theForm].submit();
}

//David Mezkiriz. 
//Function that updates text area
function checkTextArea(form) {
	form.physicaldescription.value = form.physicaldes.value;
}

/*
David Mezkiriz. 
Select all messages (internal post) , Sent and Received
*/
function selectAll(theForm,FieldName,CheckValue,numField) {
	if(!document.forms[theForm])
		return;
	//var countCheckBoxes = document.forms[theForm].elements['num_received'].value;
	var countCheckBoxes = document.forms[theForm].elements[numField].value;
	// set the check value for all check boxes
	for(var i = 0; i < countCheckBoxes; i++) {
		var s = 'id' + i;
		document.forms[theForm].elements[s].checked = CheckValue;
	}
}


/*
David Mezkiriz. 
Submits a form inserting into category and subcategory input
fields the right values 
*/
function submitFormAction(theForm,actionvalue,subactionvalue) {
	if(!document.forms[theForm])
		return;
	document.forms[theForm].action.value = actionvalue;
	document.forms[theForm].subaction.value = subactionvalue;
	document.forms[theForm].submit();
}


/*
David Mezkiriz. 
Check administrators(moderators) checked before submitting
Checked at least one checkbox on submit
Need to have one administrator at least
*/
function checkforSingleAdmin(theForm) {
	var isOneChecked = false;
	var nb = document.forms[theForm].elements['nummoderators'].value;
	for ( var i = 1; i <= nb; i++ ) {
		var name = "moder_id" + i;
		var cb = document.forms[theForm].elements[name];
		if (cb.checked) isOneChecked = true;
	}  

	if (isOneChecked) {
		document.forms[theForm].submit();
	} else {
		alert('There should be at least one Moderator');
		return false;
	}
	
}


//David Mezkiriz. Confirm group membership deletion function
function confirmMember(hreftext) {
   var theSqlQuery = "Are you sure you want to delete it?";
   var confirmMsg = "Confirmation Message";
   var fullmess = confirmMsg;
   var deleteconfirmation = "0";
   if (confirm(fullmess)) {
	   document.location.href = hreftext;
   } else {
	   return false;
   }
}


/*
 * David Mezkiriz Submits form search results
 * Submits the form for search pagination
 */

function submitSearch(prev){
	var offval = 0;
	offval = document.forms['usersearch'].offset.value;
	offval = offval * 1;
	if (prev == 'prev') {//Previous page
		offval--;
		document.forms['usersearch'].offset.value = offval;
	} else if (prev == 'next') {//Next page
		offval++;
		document.forms['usersearch'].offset.value = offval;		
	}
	document.forms['usersearch'].submit();
}

function show_help(me)
{
	eO = document.getElementById(me).style;
	eO.visibility = "visible";
	eO.display = "block";
}
function hidden_help(me)
{
	eO = document.getElementById(me).style;
	eO.visibility = "hidden";
	eO.display = "none";
}

