// JavaScript Document
function newAjax()
{
    var xmlhttp=false;
    try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
    catch(e){try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}catch(E){xmlhttp = false;}}
    if(!xmlhttp && typeof XMLHttpRequest!='undefined'){xmlhttp = new XMLHttpRequest();}
    return xmlhttp;
}
function submitPaging(filter,curPage, allPage)
{
	var objectForm = document.getElementById("pagingForm");
	objectForm.currentPage.value=curPage;
	objectForm.allPages.value=allPage;
	objectForm.filter.value=filter;
	document.getElementById("pagingForm").submit();
}
function submitForm(id, form)
{
	document.getElementById(form).id.value = id;
	document.getElementById(form).submit();
}
function MsgOkCancelDelete(entity, id, form, currentPage)
{
	if (confirm('¿Realmente desea eliminar este '+entity+'?'))
	{
		document.getElementById(form).id.value=id;
		document.getElementById(form).currentPage.value=currentPage;
		document.getElementById(form).submit();
	}
	else
	{
		return false;
	}
}
function loadInheritDocumentService(url, loadingElementId, targetElementId, htmlElement)
{
	var ajaxObject = newAjax();
	ajaxObject.open("POST", url);
	ajaxObject.onreadystatechange=function()
	{
		if(ajaxObject.readyState==1){if(loadingElementId != '')
		{
	        document.getElementById(loadingElementId).innerHTML =htmlElement;
	        }
	    }
		else if(ajaxObject.readyState==4){if(ajaxObject.status==200)
		{
		    if(loadingElementId!='')
		    {
		    	document.getElementById(loadingElementId).innerHTML = "&nbsp;";
		    }
		    document.getElementById(targetElementId).innerHTML = ajaxObject.responseText;
		    delete(ajaxObject);
		    }
		}
	}
	ajaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObject.send(null);
}
function submitDocsForm(parentId, childId, form)
{
	document.getElementById(form).parentId.value = parentId;
	document.getElementById(form).childId.value = childId;
	document.getElementById(form).submit();
}
function clearErrorMessagesFixed(form)
{
	//vgarro's [Northek Software S.A. Cuidad Quesada, San Carlos, Costa Rica] fix for firefox 2.0  09/11/2007
	var table = form.childNodes[1];;
	for(var i= 0 ; i < form.childNodes.length ; i ++){
		if( typeof form.childNodes[i].rows != "undefined"){
			table = form.childNodes[i];
			break;
		}
	}	
    // clear out any rows with an "errorFor" attribute
    var rows = table.rows;
    var rowsToDelete = new Array();
    if (rows == null){
        return;
    }
    for(var i = 0; i < rows.length; i++)
    {
        var r = rows[i];
        if (r.getAttribute("errorFor"))
        {
            rowsToDelete.push(r);
        }
    }
    // now delete the rows
    for (var i = 0; i < rowsToDelete.length; i++)
    {
        var r = rowsToDelete[i];
        table.deleteRow(r.rowIndex);
    }
}			
function displayLoadingMessage(message)
{
	loadingObj = new DHTML_modalMessage();
	loadingObj.setHtmlContent('<br/><br/>' + message +" <p>&nbsp;</p>" +" Por Favor Espere....." );
	loadingObj.setSize(200,80);
	loadingObj.setCssClassMessageBox('modalDialog_contentDiv_loading');
	loadingObj.setSource(false);
	loadingObj.setShadowDivVisible(true);	
	loadingObj.display();
}

/*
 * <!-- START SNIPPET: ajaxValidation -->
 */
 
/*
 * This function is copied over from Dojo, such that 'xhtml' theme doesn't depends
 * on Dojo.
 */
function previousElement(/* Node */ node, /*string? */ tagName) { 
	//	summary:
	//		returns the previous sibling element matching tagName
	if(!node) { return null; }
	if(tagName) { tagName = tagName.toLowerCase(); }
	do {
		node = node.previousSibling;
	} while(node && node.nodeType != 1 /* ELEMENT_NODE */);

	if(node && tagName && tagName.toLowerCase() != node.tagName.toLowerCase()) {
		return previousElement(node, tagName);
	}
	return node;	//	Element
} 
 
function clearErrorMessages(form) {
    var table = form.childNodes[1];
    if( typeof table == "undefined" ) {
        table = form.childNodes[0];
    }

    // clear out any rows with an "errorFor" attribute
    var rows = table.rows;
    var rowsToDelete = new Array();
    if (rows == null){
        return;
    }

    for(var i = 0; i < rows.length; i++) {
        var r = rows[i];
        if (r.getAttribute("errorFor")) {
            rowsToDelete.push(r);
        }
    }

    // now delete the rows
    for (var i = 0; i < rowsToDelete.length; i++) {
        var r = rowsToDelete[i];
        table.deleteRow(r.rowIndex);
    }
}

function clearErrorLabels(form) {
    // set all labels back to the normal class
    var elements = form.elements;
    for (var i = 0; i < elements.length; i++) {
        var e = elements[i];
        
        var label;
        var cells = e.parentNode.parentNode.cells;
        if (cells && cells.length >= 2) {  // when labelposition='left'
        	label = cells[0].getElementsByTagName("label")[0];
        }
        else if (cells && cells.length >=1) { // when labelposition='top'
        	if (e.parentNode.parentNode) {
        		if (previousElement(e.parentNode.parentNode)) {      
        			label = previousElement(e.parentNode.parentNode).getElementsByTagName("label")[0];
        		}
        	}
        }	
        
        if (label) {
        	label.setAttribute("class", "label");
        	label.setAttribute("className", "label"); //ie hack cause ie does not support setAttribute
        }
    }
}

function addError(e, errorText) {
    try {
        // clear out any rows with an "errorFor" of e.id
        
        var row = e.parentNode.parentNode;
        var table = row.parentNode;
        var error = document.createTextNode(errorText);
        var tr = document.createElement("tr");
        var td = document.createElement("td");
        var span = document.createElement("span");
        td.align = "center";
        td.valign = "top";
        span.setAttribute("class", "errorMessage");
        span.setAttribute("className", "errorMessage"); //ie hack cause ie does not support setAttribute
        span.appendChild(error);
        td.appendChild(span);
        tr.appendChild(td);
        tr.setAttribute("errorFor", e.id);;

        // updat the label too
        var label;
        var cells = e.parentNode.parentNode.cells;
        if (cells && cells.length >= 2) { // when labelposition='left'
        	label = cells[0].getElementsByTagName("label")[0];
        	 td.colSpan = 2;
        }
        else {
        	if (previousElement(row)) { // when labelposition='top'
        		label = previousElement(row).getElementsByTagName("label")[0];
        	}
        }	
        
        if (label) {
        	label.setAttribute("class", "errorLabel");
        	label.setAttribute("className", "errorLabel"); //ie hack cause ie does not support setAttribute
        }
        
        table.insertBefore(tr, row);
    } catch (e) {
        alert(e);
    }
}

function validateVideoFormat(fileform,validFormats){
	var filename = fileform.value;
	var fileExtension = filename.substring(filename.indexOf('.')+1,filename.length); 
	alert(validFormats.indexOf(fileExtension));
	
	if( validFormats.indexOf(fileExtension) > 0){
		alert("Supported format");
	} else {
		alert("UnSupported format");
	}
	
	return false;
}

/**
 * Switch the actual video preview with another
 *
 * @param url  Video URL
 * @param name Name of the Video
 */
function switchVideo(callerObj,url,name){
	theDiv = document.getElementById('previewContainer');
	theDiv.innerHTML = '';					
	previewA = document.createElement('a');
	previewA.setAttribute("className","preview");
	previewA.setAttribute("class","preview");
	previewA.setAttribute("href",url);
	
	textObj = document.createTextNode(name);
	theDiv.appendChild(previewA);
	theDiv.appendChild(textObj);
	$('.preview').media({autoplay: true});
}

/*
 * <!-- END SNIPPET: ajaxValidation -->
 */

