//##############################################################################
// GENERAL FUNCTIONS ###########################################################
//##############################################################################

//preloading images and files
window.onload = function() {
	setTimeout(function() {
		// XHR to request a JS and a CSS
		//var xhr = new XMLHttpRequest();
		//xhr.open('GET', 'http://domain.tld/preload.js');
		//xhr.send('');
		//xhr = new XMLHttpRequest();
		//xhr.open('GET', 'http://domain.tld/preload.css');
		//xhr.send('');
		// preload image
		new Image().src = "http://franscape.com/images/ajax-loading.gif";
		new Image().src = "http://franscape.com/images/ajax-loading2.gif";
	}, 1000);
};

function confirmHide()
{	
	var agree=confirm("Are you sure you wish to HIDE this item?");
	if (agree)
	return true ;
	else
	return false ;
}	

function confirmExecute()
{	
	var agree=confirm("Erm, are you sure you wanna do that?");
	if (agree)
	return true ;
	else
	return false ;
}	

function confirmShow()
{	
	var agree=confirm("Are you sure you wish to SHOW this item?");
	if (agree)
	return true;
	else
	return false ;
}

function confirmDelete()
{	
	var agree=confirm("Are you sure you wish to DELETE this item?");
	if (agree)
	return true ;
	else
	return false ;
}

function activatePlaceholders() {

	var detect = navigator.userAgent.toLowerCase(); 

	if (detect.indexOf("safari") > 0) return false;

	var inputs = document.getElementsByTagName("input");

	for (var i=0;i<inputs.length;i++) {

		if (inputs[i].getAttribute("type") == "text") {

			var placeholder = inputs[i].getAttribute("placeholder");

			if (placeholder.length > 0) {

				inputs[i].value = placeholder;

				inputs[i].onclick = function() {

					if (this.value == this.getAttribute("placeholder")) {

						this.value = "";

					}

					return false;

				}

				inputs[i].onblur = function() {

					if (this.value.length < 1) {

						this.value = this.getAttribute("placeholder");

					}

				}

			}

		}

	}

}

window.onload = function() {
	activatePlaceholders();
}


function getXMLObject()  //XML OBJECT
{
   var xmlHttp = false;
   try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // For Old Microsoft Browsers
   }
   catch (e) {
     try {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // For Microsoft IE 6.0+
     }
     catch (e2) {
       xmlHttp = false   // No Browser accepts the XMLHTTP Object then false
     }
   }
   if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
     xmlHttp = new XMLHttpRequest();        //For Mozilla, Opera Browsers
   }
   return xmlHttp;  // Mandatory Statement returning the ajax object created
}

var xmlhttp = new getXMLObject();

function handleServerResponse() {
   
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       document.getElementById("txtResult").innerHTML=xmlhttp.responseText; //Update the HTML Form element 
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}

function fullFormattedDate() {
	var currentDate = new Date();
	var currentDateMonth = (currentDate.getMonth()+1).toString();
	var currentDateDay = currentDate.getDate().toString();
	
	if (currentDateMonth.length == 1) currentDateMonth = "0" + currentDateMonth;
    if (currentDateDay.length == 1) currentDateDay = "0" + currentDateDay;
	
	return currentDate.getFullYear() + "-" + currentDateMonth + "-" + currentDateDay;
}

//##############################################################################
// COMMENT FORM ################################################################
//##############################################################################
function contactJon()
{
	if( !validateOnSubmit() )
	{
		return false;
	}
	var getDate = new Date();
	
	if(xmlhttp)
	{
		var formName = document.getElementById("name");
		var formEmail = document.getElementById("email");
		var formSubject = document.getElementById("subject");
		var formContent = document.getElementById("formcontent");
		var formRequired = document.getElementById("required");
		var formEnv = document.getElementById("env_report");
		var formRRF = document.getElementById("recaptcha_response_field");
		var formRCF = document.getElementById("recaptcha_challenge_field");
		
		// here is where you can show pending image
		window.scrollTo(0,400);
		document.getElementById("txtResult").innerHTML="<br><br><br><br><strong>Please wait!</strong><br><image src=http://franscape.com/images/ajax-loading.gif>&nbsp;</image><br><br><br><br>";
		
		xmlhttp.open("POST","http://franscape.com/form_parser.php",true); //calling PHP handler using POST method
		xmlhttp.onreadystatechange = handleServerResponse;
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send("name=" + formName.value + 
					 "&email=" + formEmail.value + 
					 "&subject=" + formSubject.value + 
					 "&content=" + formContent.value + 
					 "&recipient=contact.form@franscape.com&required=" + formRequired.value + 
					 "&recaptcha_response_field=" + formRRF.value +
					 "&recaptcha_challenge_field=" + formRCF.value);
	}
}

//##############################################################################
// AFFILIATE FUNCTIONS (blog, blog-comments, tutorials, etc) ###################
//##############################################################################
function addAffil(operation)
{
	if(operation == 1) // Add
	{
		;
	}
	
	if(operation == 2) // Toggle
	{
		;
	}
	
	if(operation == 3) // Delete
	{
		;
	}
	
	
}

//##############################################################################
// ADD-POST FUNCTIONS (blog, blog-comments, tutorials, etc) ####################
//##############################################################################
function addPost(location, op, quotedPost)
{
	if(location == 1) // Blog
	{
		if(op == 1) // Add, Quote
		{
			var getdate = new Date();
			if(xmlhttp)
			{
				var formName = document.getElementById("name");
				var formDate = document.getElementById("date");
				var formContent = document.getElementById("postcontent");
				var formCat = document.getElementById("category");
				
				// here is where you can show pending image
				window.scrollTo(0,400);
				document.getElementById("txtResult").innerHTML="<br><br><br><br><strong>Please wait!</strong><br><image src=http://franscape.com/images/ajax-loading.gif>&nbsp;</image><br><br><br><br>";
				
				if(quotedPost)
				{
					xmlhttp.open("POST","http://franscape.com/manageposts.php?s=off&a=quote&q="+quotedPost+"&page="+location,true); //calling PHP handler using POST method
					xmlhttp.onreadystatechange = handleServerResponse;
					xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					xmlhttp.send("name=" + formName.value + "&date=" + formDate.value + "&category=" + formCat.value + "&content=" + formContent.value);
				}
				else
				{
					xmlhttp.open("POST","http://franscape.com/manageposts.php?s=off&a=add&page="+location,true); //calling PHP handler using POST method
					xmlhttp.onreadystatechange = handleServerResponse;
					xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					xmlhttp.send("name=" + formName.value + "&date=" + formDate.value + "&category=" + formCat.value + "&content=" + formContent.value);
				}
			}
		}
	}
}

//##############################################################################
// ADD-DEV-ITEM FUNCTIONS (adev, wdev, network, etc) ###########################
//##############################################################################

function addDevItem(location, op) 
{
	if( (op == 1) || (op == 2) ) //"Submit" and "Submit & Add Another" operations
	{ // Adding an item..
		var getdate = new Date();  //Used to prevent caching during ajax call
		if(xmlhttp) 
		{
			var projname = document.getElementById("name");
			var projcat = document.getElementById("category");
			var projdesc = document.getElementById("description");
			var projdate = document.getElementById("date");
			var projsurl = document.getElementById("siteurl");
			var projtech = document.getElementById("technology");
			var projiurl = document.getElementById("imageurl");
			
			var projview;
			if( document.getElementById("viewable").checked )
			{
				projview = "1";
			}
			else
			{
				projview = "0";
			}
			
			var projfeat; 
			if( document.getElementById("featured").checked ){
				projfeat = "1";
			}
			else{
				projfeat = "0";
			}
			
			// here is where you can show pending image
			document.getElementById("txtResult").innerHTML="<image src=http://franscape.com/images/ajax-loading.gif>Please wait!</image><br><br><br><br>";
			
			xmlhttp.open("POST","http://franscape.com/managelist.php?s=off&a=add&page="+location,true); //calling PHP handler using POST method
			xmlhttp.onreadystatechange = handleServerResponse;
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			
			if(location == 1) { // AppDev
				
				xmlhttp.send("name=" + projname.value + 
							 "&category=" + projcat.value + 
							 "&description=" + projdesc.value + 
							 "&date=" + projdate.value + 
							 "&siteurl=" + projsurl.value + 
							 "&technology=" + projtech.value + 
							 "&imageurl=" + projiurl.value + 
							 "&viewable=" + projview +
							 "&featured=" + projfeat); //Posting to PHP File
			}
			
			if(location == 2) { // WebDev
				
				var projnet; 
				if(document.getElementById("networked").checked)
				{
					projnet = "1";
				}
				else
				{
					projnet = "0";
				}
				
				xmlhttp.send("name=" + projname.value + 
							 "&category=" + projcat.value + 
							 "&description=" + projdesc.value + 
							 "&date=" + projdate.value + 
							 "&siteurl=" + projsurl.value + 
							 "&technology=" + projtech.value + 
							 "&imageurl=" + projiurl.value + 
							 "&viewable=" + projview + 
							 "&featured=" + projfeat + 
							 "&networked=" + projnet); //Posting to PHP File
			}
			if(location == 3) { // Network
				
				xmlhttp.send("name=" + projname.value + 
							 "&category=" + projcat.value + 
							 "&description=" + projdesc.value + 
							 "&date=" + projdate.value + 
							 "&siteurl=" + projsurl.value + 
							 "&technology=" + projtech.value + 
							 "&imageurl=" + projiurl.value + 
							 "&viewable=" + projview + 
							 "&featured=" + projfeat); //Posting to PHP File
			}
		}

		// Reset form
		resetAddItemForm();
	}
	
	if( op == 1 ){ // Close form, after the "Add" clause
		// hide form
		toggleAddItemForm();
	}
	if(op == 3){ // Cancel
	
		//Clear form
		resetAddItemForm();
		
		//Hide form
		toggleAddItemForm();
	}
}

function toggleView(location, iden, origin)
{
	var getdate = new Date();  //Used to prevent caching during ajax call
	if(xmlhttp) 
	{	
		if(location == "1" || location == "2")
		{
			document.getElementById("devItem"+iden+origin).innerHTML="<center><br><image src=http://franscape.com/images/ajax-loading.gif>&nbsp;</image><br></center>";
		}
		if(location == "3")
		{
			document.getElementById("networkImgP"+iden).innerHTML="<center><br><br><image src=http://franscape.com/images/ajax-loading2.gif>&nbsp;</image></center>";
		}
		xmlhttp.open("GET","managelist.php?s=off&a=toggle&id="+iden+"&origin="+origin+"&page="+location,true); //calling PHP handler using POST method
		xmlhttp.onreadystatechange = handleServerResponse;
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		xmlhttp.send(); //Posting to PHP File
	}
}

function deleteItem(location, iden, origin)
{
	var getdate = new Date();  //Used to prevent caching during ajax call
	if(xmlhttp && confirmDelete()) 
	{	
		xmlhttp.open("GET","managelist.php?s=off&a=del&id="+iden+"&origin="+origin+"&page="+location,true); //calling PHP handler using POST method
		xmlhttp.onreadystatechange = handleServerResponse;
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		xmlhttp.send(); //Posting to PHP File
	}
}
/*
function removeItem(location, iden, origin, op)
{
	var getdate = new Date();  //Used to prevent caching during ajax call
	if(xmlhttp) 
	{
		var operationAction;
		//document.getElementById("txtResult").innerHTML="<image src=http://franscape.com/images/ajax-loading.gif>Please wait!</image><br><br><br><br>";
		
		if(op == 1)
		{ // Hide item -- revoke its 'viewable' status
			operationAction = "hide";
		}
		if(op == 2)
		{ // Show item -- revoke its 'viewable' status
			operationAction = "show";
		}
		if(op == 3)
		{ // Delete item completely
			operationAction = "del";
		}
		
		xmlhttp.open("POST","http://franscape.com/managelist.php?s=off&a="+operationAction+"&id="+iden+"&origin="+origin+"&page="+location,true); //calling PHP handler using POST method
		xmlhttp.onreadystatechange = handleServerResponse;
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		xmlhttp.send(); //Posting to PHP File
	}
	//play with CSS
}
*/
function resetAddItemForm()
{
	document.getElementById("name").value = "";
	document.getElementById("category").value = "";
	document.getElementById("description").value = "";
	document.getElementById("date").value = fullFormattedDate();
	document.getElementById("siteurl").value = "";
	document.getElementById("technology").value = "";
	document.getElementById("imageurl").value = "";
}

function toggleAddItemForm(){
	var formObject = document.getElementById("additemform");
	var button = document.getElementById("additembutton");
	
	if(formObject.style.display == "none")
	{
		formObject.style.display = "block";
		button.innerHTML = "<a href=\"javascript:;\">Adding a New Listing...</a> (<em>click again to cancel</em>)";
	}
	else
	{
		formObject.style.display = "none";
		button.innerHTML = "<a href=\"javascript:;\">Add New Listing</a>";
		resetAddItemForm();
	}
}

//##############################################################################
// NETWORK FUNCTIONS ###########################################################
//##############################################################################


