//##################################################################################
//## FORM SUBMIT WITH AJAX                                                        ##
//## @Author: Simone Rodriguez aka Pukos <http://www.SimoneRodriguez.com>         ##
//## @Version: 1.2                                                                ##
//## @Released: 28/08/2007                                                        ##
//## @License: GNU/GPL v. 2 <http://www.gnu.org/copyleft/gpl.html>                ##
//##################################################################################


function xmlhttpPost(strURL,formname,responsediv,responsemsg) {
    var xmlHttpReq = false;
    var self = this;
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // per tutte le altre versioni di IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
			// Quando pronta, visualizzo la risposta del form
            updatepage(self.xmlHttpReq.responseText,responsediv);
        }
		else{
			// In attesa della risposta del form visualizzo il msg di attesa
			//updatepage(responsemsg,responsediv);

		}
    }
	if (formname == null) 
		self.xmlHttpReq.send();
	else 
		self.xmlHttpReq.send(getquerystring(formname));
}

function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";

    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
        var elemType = element.type.toUpperCase();
        var elemName = element.name;
        if (elemName) {
            if (elemType == "TEXT"
                    || elemType == "TEXTAREA"
                    || elemType == "PASSWORD"
					|| elemType == "BUTTON"
					|| elemType == "RESET"
					|| elemType == "SUBMIT"
					|| elemType == "FILE"
					|| elemType == "IMAGE"
                    || elemType == "HIDDEN") {

				if(element.className != "noValue") GetElemValue(elemName, element.value);
			}
            else if (elemType == "CHECKBOX" && element.checked)
                GetElemValue(elemName, 
                    element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("SELECT") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName,
                            option.value ? option.value : option.text);
                }
        }
    }
    return qstr;
}
function updatepage(str,responsediv){
	
    //document.getElementById(responsediv).innerHTML = str;
	//alert(str);
	if (document.getElementById("imgTemplate") != undefined) document.getElementById("imgTemplate").src = str;
}

/*
		$input_text = $_SESSION['input_text'];		
		$input_pos = $_SESSION['input_pos'];
		$input_align = $_SESSION['input_align'];
		$input_bold = $_SESSION['input_bold'];
		$input_font = $_SESSION['input_font'];
		$input_font_size = $_SESSION['input_font_size'];
		$input_color = $_SESSION['input_color'];
		*/
	var initTexts = new Array("","","","","","","","", "")
	function setStartInputs(text, pos, align, bold, font, font_size, color) {
		
		//text
		var texts = text.split("~#");
		for (var i=0; i< texts.length; i++) {
			initTexts[i] = texts[i];
			//document.forms['template_form'].elements['input_text[]'][i].value = texts[i];
		}
		
		
		//pos
		if (currentPos == null) {
			currentPos = document.getElementById('posLeft');
		}
		currentPos.src = currentPos.src.substr(0, currentPos.src.length-6) + ".gif";	
		currentPos = document.getElementById(pos);	
		currentPos.src = currentPos.src.substr(0, currentPos.src.length-4) + "_s.jpg";	
		document.forms['template_form'].input_pos.value = currentPos.id;	
		
		
		//align
		if (currentAlign == null) {
			currentAlign = document.getElementById('alignLeft');
		}
		currentAlign.src = currentAlign.src.substr(0, currentAlign.src.length-6) + ".gif";
		currentAlign = document.getElementById(align);	
		currentAlign.src = currentAlign.src.substr(0, currentAlign.src.length-4) + "_s.jpg";		
		document.forms['template_form'].input_align.value = currentAlign.id;
		
		//font
		document.forms['template_form'].input_font.value = font;
				
		//font size
		document.forms['template_form'].input_font_size.value = font_size;
		
		//color
		document.getElementById("choosenColor").style.backgroundColor = color;
		document.forms['template_form'].input_color.value = color;
				
	}

	function checkText(element, pos) {
	
		if (element.value == messaggiEsempio[pos]) {
			element.value = "";
			element.className = "value";
		} else if (element.value == "") {
			element.value = messaggiEsempio[pos];
			element.className = "noValue";
		}			
	}


	function checkCheck(element, pos) {
	
		if (currentBold[pos] == 0) {
			//alert( eval("document.forms['template_form'].input_bold[" + pos + "].value") );

			currentBold[pos] = 1;
			element.src = element.src.substr(0, element.src.length-4) + "_s.gif";
		} else {
			currentBold[pos] = 0;
			element.src = element.src.substr(0, element.src.length-6) + ".gif";
		}
		formSubmit();
	}
	
	function checkLink(dest) {
		
		
		if (dest == 'sito') {
			
			document.getElementById('imgLinkMicrosito').src = "template/checkbox.gif";
			document.getElementById('imgLinkSito').src = "template/checkbox_s.gif";
			document.forms['template_form'].template_microsito.value = 0;
			document.forms['template_form'].template_link.disabled = false;
		} else {
		
			document.getElementById('imgLinkMicrosito').src = "template/checkbox_s.gif";
			document.getElementById('imgLinkSito').src = "template/checkbox.gif";
			document.forms['template_form'].template_microsito.value = 1;
			document.forms['template_form'].template_link.disabled = true;
		}
	}
	
	function setPos(element) {
		if (element.src.indexOf("_s.gif") == -1) {
			if (currentPos == null) {
				currentPos = document.getElementById('posLeft');
			}
	
			currentPos.src = currentPos.src.substr(0, currentPos.src.length-6) + ".gif";
			
			currentPos = element;		
			currentPos.src = currentPos.src.substr(0, currentPos.src.length-4) + "_s.jpg";
			
			document.forms['template_form'].input_pos.value = currentPos.id;
			formSubmit();
		}
	}

	function setAlign(element) {
		if (element.src.indexOf("_s.gif") == -1) {
			if (currentAlign == null) {
				currentAlign = document.getElementById('alignLeft');
			}
			
			currentAlign.src = currentAlign.src.substr(0, currentAlign.src.length-6) + ".gif";
			
			
			currentAlign = element;		
			currentAlign.src = currentAlign.src.substr(0, currentAlign.src.length-4) + "_s.jpg";		

			document.forms['template_form'].input_align.value = currentAlign.id;
			formSubmit();
		}
	}

	function formSubmit() {

		document.forms['template_form'].input_bold.value = currentBold;
		xmlhttpPost('template/template_storeSession.php', 'template_form', 'template_singolo', 'Wait...');
	}
	
	function formLinkSubmit() {
			
		if (document.forms['template_link_form'].template_link[0].checked &&
			document.forms['template_link_form'].template_link_sito.value == "") {
			
			alert("Inserisci l'indirizzo del tuo sito web!");
			return;
		}
		
		if (document.forms['template_link_form'].template_link[1].checked &&
			document.forms['template_link_form'].template_link_microsito.value == "") {
			
			alert("Inserisci un nome per il tuo microsito!");
			return;
		}
		
		document.forms['template_link_form'].submit();	
	}
	
	function esempiInit() {

		inputs = document.forms['template_form'].elements['input_text[]'];
		for (i = 0; i < inputs.length; i++) {
			if (initTexts[i] != "") {
				inputs[i].value = initTexts[i];
				inputs[i].className = "value";
			} else {
				inputs[i].value = messaggiEsempio[i];
			}
		}
		
	}
	
	
	function chooseColor(color) {
		
		
		document.getElementById("choosenColor").style.backgroundColor = color;
		document.forms['template_form'].input_color.value = color;
		hideColorDiv();
		formSubmit();
	}

	function hideColorDiv() {
		document.getElementById("colorsDiv").style.display = "none";
	}
	
	function showColorDiv(e) {
		var posx = 0;
		var posy = 0;
		if (!e) var e = window.event;
		if (e.x || e.y) {
			posx = e.x;
			posy = e.y;
		} else if (e.pageX || e.pageY) {
			posx = e.pageX;
			posy = e.pageY;		
		}
		
		document.getElementById("colorsDiv").style.left = posx + "px";
		document.getElementById("colorsDiv").style.top = posy + "px";
		document.getElementById("colorsDiv").style.display = "block";
	}
