// JavaScript Document
// ajaxy.js por Edson Lemus =o) edsonnlb@gmail.com
// The secret behind that ajaxy thing! wajajajajaja!

var htmlEditorContainers = new Array();

function getElementsByClass(searchClass, domNode, tagName) {
	if (domNode == null) domNode = document;
	if (tagName == null) tagName = '*';
	var elements = new Array();
	var tags = domNode.getElementsByTagName(tagName);
	var tcl = " " + searchClass + " ";
	var count = 0;
	for(i = 0; i < tags.length; i++) {
		var test = " " + tags[i].className + " ";
		if (test.indexOf(tcl) != -1){
			elements[count] = tags[i];
			count++;
		}
	}
	
	return elements;
}

function changeClassDisplay(className, display){
	var objs = getElementsByClass(className);
	for (i = 0; i < objs.length; i++){
		objs[i].style.display = display;	
	}
}

function setValueById(id, value) {
	var object = document.getElementById(id);
	object.value = value;
}

function setHTMLById(id, html) {
	var object = document.getElementById(id);
	object.innerHTML = html;
	var scripts = object.getElementsByTagName("script");
	for (var i = 0; i < scripts.length; i++) {
		/*if (scripts[i].src != null && scripts[i].src.length > 0){
			alert(scripts[i].src);
			objScript = document.createElement('script');
			objScript.src = scripts[i].src;
			document.getElementsByTagName('head').item(0).appendChild(objScript);
		}
		else{*/
			eval(scripts[i].text);
		//}
	}
}

function submitAjaxForm(formName, dest, resultTargetID){
	var postStr = getFormValues(formName);
	//alert(postStr);
	postAjax(resultTargetID, dest, postStr);
}

function getFormValues(idForm) {
	saveHTMLEditors();
	var objForm = document.getElementById(idForm);
	var str = '';
	var count = 0;
	for (var i = 0; i < objForm.elements.length; i++) {
		if ((objForm.elements[i].type != 'checkbox' && objForm.elements[i].type != 'radio') || objForm.elements[i].checked){
			if (objForm.elements[i].type == 'select-multiple') {
				for (var j = 0; j < objForm.elements[i].options.length; j++) {
					if (objForm.elements[i].options[j].selected) {
						str = str + "&" + objForm.elements[i].name + '=' + encodeURIComponent(objForm.elements[i].options[j].value);
					}
				}
			}
			else {
				if (objForm.elements[i].value != null && objForm.elements[i].value.length > 0) {
					if (count > 0) {
						str = str + "&";
					}
					str = str + objForm.elements[i].name + '=' + encodeURIComponent(objForm.elements[i].value);
				}
				else {
					count--;	
				}
			}
			count++;
		}
	}

	return str;
}

function saveHTMLEditors(){
	for (var i = 0; i < htmlEditorContainers.length; i++){
		try{
			nicEditors.findEditor(htmlEditorContainers[i]).saveContent();
		}
		catch (E) {}
	}
}

function addHTMLEditor(elementID) {
	new nicEditor({fullPanel: true, iconsPath: 'http://viajestivoli.org/paquetes/js/nicEditorIcons.gif'}).panelInstance(elementID);
	htmlEditorContainers[htmlEditorContainers.length] = elementID;
}

function getAjaxObject() {
	var object = false;
	if (typeof XMLHttpRequest != 'undefined') {
		object = new XMLHttpRequest();
	} 
	else {
		try {
			object = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e1) {
			try {
				object = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e2) {}
		}
	}
	return object;
}

function postAjax(objID, serverDoc, strPost) {
	var tempHTML = '<div align="left"><img src="http://viajestivoli.com/paquetes/images/loading.gif">Cargando...</div>';
	setHTMLById(objID, tempHTML);
	objAjax = getAjaxObject();
	try {
		objAjax.open("POST", serverDoc, true);
		objAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		objAjax.setRequestHeader('Content-Length', strPost.length);
		objAjax.onreadystatechange = function() {
						if (objAjax.readyState == 4) {
							if (objAjax.status == 200) {
								setHTMLById(objID, objAjax.responseText);
							}
							else {
							}
						}
					}
		objAjax.send(strPost);
	}
	catch (E) {}
}

function deleteItem(name, objID, serverDoc, strPost){
	if (confirm('Eliminar ' + name + '?')){
		postAjax(objID, serverDoc, strPost + '&mode=del');
	}
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function trim(str) {
	while (str.substring(0, 1) == ' ') {
		str = str.substring(1, str.length);
	}
	while (str.substring(str.length-1, str.length) == ' ') {
		str = str.substring(0, str.length-1);
	}

	return str;
}// JavaScript Document

function fade(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * speed)); 
            timer++;
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpacity(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}
