/**
  * Author: Carlos Saenz
  */

var siteskip = function()
{
	var that = this;
	
	var _deleteTempDir = true;
	
	this.deleteTempDir = function()
	{
		return _deleteTempDir;
	}
	
	this.setDeleteTempDir = function( bool )
	{
		_deleteTempDir = bool;
	}
	
	var _tempDir;
	
	this.setTempDir = function( dirName )
	{
		_tempDir = dirName;
	}
	
	this.getTempDir = function()
	{
		return _tempDir;
	}
	
	function sendRequest( url, callback, postData )
	{
		var req = createXMLHTTPObject();
		if ( !req ) return;
		
		var method = ( postData ) ? "POST" : "GET";
		req.open( method, url, true );
		req.setRequestHeader( 'User-Agent','XMLHTTP/1.0' );
		
		if ( postData )
		{
			req.setRequestHeader( 'Content-type','application/x-www-form-urlencoded' );
			//http.setRequestHeader("Content-length", postData.length);
			//http.setRequestHeader("Connection", "close");
		}
		
		req.onreadystatechange = function()
		{
			if ( req.readyState != 4 ) return;
			
			if ( req.status != 200 && req.status != 304 )
			{
				//alert( 'HTTP error ' + req.status );
				return;
			}
			
			callback( req );
		}
		
		if ( req.readyState == 4 ) return;
		
		req.send( postData );
	}
	
	var XMLHttpFactories = [
		function () { return new XMLHttpRequest() },
		function () { return new ActiveXObject("Msxml2.XMLHTTP") },
		function () { return new ActiveXObject("Msxml3.XMLHTTP") },
		function () { return new ActiveXObject("Microsoft.XMLHTTP") }
	];
	
	function createXMLHTTPObject()
	{
		var xmlhttp = false;
		
		for ( var i = 0; i < XMLHttpFactories.length; i++ )
		{
			try
			{
				xmlhttp = XMLHttpFactories[i]();
			}
			catch ( e )
			{
				continue;
			}
			
			break;
		}
		
		return xmlhttp;
	}
	
	this.doDeleteTempDir = function()
	{
		sendRequest( '/php/skipUpdate/deleteDir.php?tempDir=' + _tempDir, handleRequest );
		that.eraseCookie( 'siteskipData' );
	}
	
	function handleRequest( req )
	{
		//var writeroot = [some element];
		//writeroot.innerHTML = req.responseText;
	}
	
	this.createCookie = function( name, value, days )
	{
		if ( days )
		{
			var date = new Date();
			date.setTime( date.getTime() + (days * 24 * 60 * 60 * 1000) );
			var expires = "; expires=" + date.toGMTString();
		}
		else var expires = "";
		
		document.cookie = name + "=" + value + expires + "; path=/";
	}
	
	this.readCookie = function( name )
	{
		var nameEQ = name + "=";
		var ca = document.cookie.split( ';' );
		
		for ( var i = 0; i < ca.length; i++)
		{
			var c = ca[i];
			
			while ( c.charAt( 0 ) == ' ') c = c.substring( 1, c.length );
			
			if ( c.indexOf( nameEQ ) == 0 ) return c.substring( nameEQ.length, c.length);
		}
		
		return null;
	}
	
	this.eraseCookie = function( name )
	{
		that.createCookie( name, "", -1 );
	}
}