// JavaScript Document

function iBelieve( t, x )
{
	try
	{
		var spanId = x + '_ajax';
		var j = d.getElementById( x );
		var s = d.getElementById( spanId ); // everything having to do with applying the video manually
		var uri = '_upload/' + x + '.php';
		var xmlDoc = loadXMLDoc( uri ) ;
	}
	catch( e )
	{
		alert( e.description + ' Zona de variables.' );
	}
	if( xmlDoc )
	{
		try
		{
			var r = xmlDoc.documentElement;
		}
		catch( e )
		{
			alert( e.description + ' Zona de xml.' );
		}
		try
		{
			var file = r.getElementsByTagName( 'file' )[ 0 ].firstChild.nodeValue;
			var size = r.getElementsByTagName( 'size_kb' )[ 0 ].firstChild.nodeValue;
			var width = r.getElementsByTagName( 'width_px' )[ 0 ].firstChild.nodeValue;
			var height = r.getElementsByTagName( 'height_px' )[ 0 ].firstChild.nodeValue;
			var gallery = r.getElementsByTagName( 'gallery' )[ 0 ].firstChild.nodeValue; // added later
		}
		catch( e )
		{
			alert( e.description + ' Zona de parsing.' );
		}
		try
		{
			editTools[ t ][ toolImgData ] = new Array();
			editTools[ t ][ toolImgData ][ 0 ] = file;
			editTools[ t ][ toolImgData ][ 1 ] = size;
			editTools[ t ][ toolImgData ][ 2 ] = width;
			editTools[ t ][ toolImgData ][ 3 ] = height;
			editTools[ t ][ toolImgData ][ 4 ] = gallery; // added later
			s.innerHTML = file + ' ha sido aplicada con &eacute;xito.';
			j.value = file;
		}
		catch( e )
		{
			alert( e.description + ' Zona de array.' );
		}
	}
	else
	{
		s.innerHTML = '<span class="sys">Archivo no encontrado.</span><span class="subSys">&nbsp;Asegurate de primero subir la foto.</span>';
	}
}

function iLove( t, x ) {
	try {
		var f;
		var iframeId = x + '_iframe'; //ff checks id  --> check out tri_ajax.js  
		var iframeName = x + '_iframe'; //ie checks name
		var spanId = x + '_ajax';
		var j = d.getElementById( x );
		var s = d.getElementById( spanId ); // everything having to do with applying the video manually
		// GET IFRAME CONTENT !! =D
		// if contentDocument exists, W3C compliant ( Mozilla )
		if( document.getElementById( iframeId ).contentDocument )
		{
			f = document.getElementById( iframeId ).contentDocument;
		}
		else
		{
			// IE
			f = d.frames[ iframeName ].document;
		}
		var jackie = f.getElementById( 'jacqueline' ).value;
		var embed = f.getElementById( 'embed' ).value;
		var gallery = f.getElementById( 'gallery' ).value;
		if( jackie ) {
			editTools[ t ][ toolVidData ] = new Array();
			editTools[ t ][ toolVidData ][ 0 ] = jackie;
			editTools[ t ][ toolVidData ][ 1 ] = embed;
			editTools[ t ][ toolVidData ][ 2 ] = gallery;
			s.innerHTML = jackie + ' ha sido aplicado con &eacute;xito.';
			j.value = jackie;
		}
		else {
			s.innerHTML = '<span class="sys">C&oacute;digo incorrecto.</span><span class="subSys">&nbsp;Asegurate de que el c&oacute;digo ingresado provenga de <i>YouTube</i> y no haya sido modificado.</span>'
		}
	}
	catch( e ) {
		alert( 'Ha ocurrido un error : "' + e.description + '".' );		
	}
}

function AjaxDb() {
	var self = this;
	this.id;
	this.obj;
	this.objBis;
	
	this.insert = function( t, x ) { // receives the tool and the inputId.
		//alert("ALERT DEBUG -> En insert");
		self.obj = getAjaxObj();
		var url = '_upload/' + x + '.php';
		//alert("ALERT DEBUG -> "+url);
		self.obj.open( 'GET', url, true );
		self.obj.onreadystatechange = ( x.match( /img/ ) )? self._imgOnResponse : self._vidOnResponse;
		self.obj.send( null );
	}
	
	this._imgOnResponse = function() {
		var obj = self.obj;
		if( obj.readyState == 4 ) {
			if( obj.status == 200 ) {
				if( obj.responseText ) {
					var resp = obj.responseText;
					// code for IE
					if ( window.ActiveXObject ) {
						var doc = new ActiveXObject( "Microsoft.XMLDOM" );
						doc.async = "false";
						doc.loadXML( resp );
					}
					// code for Mozilla, Firefox, Opera, etc.
					else {
						var parser = new DOMParser();
						var doc = parser.parseFromString( resp, "text/xml" );
					}
					
					var r = doc.documentElement;

					var x;
					var a = new Array( 'name', 'file', 'thumb', 'type', 'size_kb', 'width_px', 'height_px', 'cover', 'desc', 'tags' );
					var dbData = new Array();
					for( x in a ) {
						var v = a[ x ];
						if( r.getElementsByTagName( v )[ 0 ].firstChild )
							dbData[ v ] = r.getElementsByTagName( v )[ 0 ].firstChild.nodeValue;
						else
							dbData[ v ] = 'n/a';
						dbData[ v ] = Url.encode( dbData[ v ] );
					}
					//var url = 'php/sp_img_gallery.php?name=' + dbData[ 'name' ] + '&file=' + dbData[ 'file' ] + '&master_id=' + dbData[ 'master_id' ] + '&type=' + dbData[ 'type' ] + '&size_kb=' + dbData[ 'size_kb' ] + '&width_px=' + dbData[ 'width_px' ] + '&height_px=' + dbData[ 'height_px' ] + '&cover=' + dbData[ 'cover' ] + '&desc=' + dbData[ 'desc' ] + '&tags=' + dbData[ 'tags' ] + '&added=' + dbData[ 'added' ];
					var url = 'php/sp_img_gallery.php';
					for( x in a ) {
						if( x == 0 )
							url += '?';
						else
							url += '&';
						var v = a[ x ];
						url += v + '=' + dbData[ v ];						
					}
					url += '&master_id=' + self.id;
					self.objBis = getAjaxObj();
					//alert(url);
					self.objBis.open( 'POST', url, true );
					self.objBis.onreadystatechange = self._insertOnResponse;
					self.objBis.send( null );
				}
			}
		}
	}
	
	this._vidOnResponse = function() {
		var obj = self.obj;
		//alert("ALERT DEBUG -> _vidOnResponse");
		if( obj.readyState == 4 ) {
			if( obj.status == 200 ) {
				//alert("ALERT DEBUG -> obj.status == 200");
				if( obj.responseText ) {
					var resp = obj.responseText;
					//resp = resp.replace(/&/, "&amp;");
					//alert(resp);
					
					// code for IE
					if ( window.ActiveXObject ) {
						var doc = new ActiveXObject( "Microsoft.XMLDOM" );
						doc.async = "false";
						doc.loadXML( resp );
					}
					// code for Mozilla, Firefox, Opera, etc.
					else {						
						var parser = new DOMParser();
						var doc = parser.parseFromString( resp, "text/xml" );
					}

					var r = doc.documentElement;

					var x;
					var a = new Array( 'name', 'code', 'length_min', 'length_sec', 'desc', 'tags' );
					var dbData = new Array();
					//alert("ALERT DEBUG -> Armando array para grabar");
					for( x in a ) {
						var v = a[ x ];
						if( r.getElementsByTagName( v )[ 0 ].firstChild )
							dbData[ v ] = r.getElementsByTagName( v )[ 0 ].firstChild.nodeValue;
						else
							dbData[ v ] = 'n/a';
						dbData[ v ] = Url.encode( dbData[ v ] );
					}
					//var url = 'php/sp_vid_gallery.php?name=' + dbData[ 'name' ] + '&code=' + dbData[ 'code' ] + '&master_id=' + dbData[ 'master_id' ] + '&length_min=' + dbData[ 'length_min' ] + '&length_sec=' + dbData[ 'length_sec' ] + '&desc=' + dbData[ 'desc' ] + '&tags=' + dbData[ 'tags' ] + '&added=' + dbData[ 'added' ];
					var url = 'php/sp_vid_gallery.php';
					for( x in a ) {
						if( x == 0 )
							url += '?';
						else
							url += '&';
						var v = a[ x ];
						url += v + '=' + dbData[ v ];						
					}
					url += '&master_id=' + self.id;
					//alert("ALERT DEBUG -> llamando a "+url);
					self.objBis = getAjaxObj();
					self.objBis.open( 'POST', url, true );
					self.objBis.onreadystatechange = self._insertOnResponse;
					self.objBis.send( null );
				}
			}
		}
	}
	
	this._insertOnResponse = function() {
		var obj = self.objBis;
		if( obj.readyState == 4 ) {
			if( obj.status == 200 ) {
				if( obj.responseText ) {
					try {
						var resp = obj.responseText;
						var m = window.document.getElementById( 'txtEditDbMsg' );
						m.innerHTML += resp + '<br />';
					}
					catch( e ) {
						alert( 'Error, AjaxDb._insertOnResponse : ' + e.description + '.' );
					}
				}
			}
		}
	}
}
