﻿function reloadCategoriesWithLanguageArea( areaid )
{
	var requestParameters = "area=" + areaid;

	// Values you provide
	var feedURL = "CategoryTreeAsCSV.php?" + requestParameters;
	createRequest();
	request.open("GET", feedURL, true);
	request.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
	request.onreadystatechange = returnCategoriesWithLanguageArea;
	request.send(null);
}

function returnCategoriesWithLanguageArea()
{
	if (request.readyState == 4) {
		// Parse and interpret results
		var categorySelect = document.getElementById('categorySelect');
		
		var rtxt = request.responseText;
		rtxt = rtxt.replace(/&amp;/g,'&');
		rtxt = rtxt.replace(/&aacute;/g,'á');
		rtxt = rtxt.replace(/&eacute;/g,'é');
		rtxt = rtxt.replace(/&iacute;/g,'í');
		rtxt = rtxt.replace(/&oacute;/g,'ó');
		rtxt = rtxt.replace(/&uacute;/g,'ú');
		rtxt = rtxt.replace(/&Aacute;/g,'Á');
		rtxt = rtxt.replace(/&Eacute;/g,'É');
		rtxt = rtxt.replace(/&Iacute;/g,'Í');
		rtxt = rtxt.replace(/&Oacute;/g,'Ó');
		rtxt = rtxt.replace(/&Uacute;/g,'Ú');
		rtxt = rtxt.replace(/&ntilde;/g,'ñ');
		rtxt = rtxt.replace(/&Ntilde;/g,'Ñ');
		
		var categories = rtxt.split(':;:');
		var options = categorySelect.options;
		var selectedIds = new Array(options.length);
		var i;
		for(i = 0; i<options.length; i++){
			if( options[i].selected == true ){	selectedIds[ parseInt(options[i].value) ] = true;	}
		}
		categorySelect.innerHTML = "";
		for(i = 0; i<categories.length; i++){
			var category = categories[i].split('|');
			var node = document.createElement('option');
			node.setAttribute('value', category[0]);
			node.setAttribute('text', category[1]);
			if( selectedIds[ parseInt(category[0]) ] == true ){ node.setAttribute('selected', 'true'); }
			node.appendChild( document.createTextNode(category[1]) );
			categorySelect.appendChild(node);
		}
		
	}
}

function cancelled()
{
	parent.document.getElementById('floatingCover').style.display = 'none';
}

function commited()
{
	parent.document.getElementById('floatingCover').style.display = 'none';
	parent.document.getElementById('siteForm').style.display = 'none';
	parent.document.getElementById('commited').style.display = 'block';
}

function trim( string )
{
	return string.replace(/^ +/g, "").replace(/ +$/g, "");
}

function checkSubmission(errorMessage)
{
	var ok = true;
	
	// Email address
	var email = trim(document.getElementById('email').value);
	var emailError = document.getElementById('emailError');
	if( email.match( /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/ ) ){// /^[\w\._]+@[\w\.]+\.\w{2,3}$/
		emailError.style.display = 'none';
	}
	else{
		emailError.style.display = 'block';
		ok = false;
	}
	
	// Area
	var areaSelect = document.getElementById('areaSelect');
	var areaSelectError = document.getElementById('areaSelectError');
	if( areaSelect.selectedIndex > 0 ){
		areaSelectError.style.display = 'none';
	}
	else{
		areaSelectError.style.display = 'block';
		ok = false;
	}
	
	// Category
	var categorySelect = document.getElementById('categorySelect');
	var categorySelectError = document.getElementById('categorySelectError');
	if( categorySelect.selectedIndex > -1 ){
		categorySelectError.style.display = 'none';
	}
	else{
		categorySelectError.style.display = 'block';
		ok = false;
	}
	
	// Name
	var siteName = trim(document.getElementById('siteName').value);
	var siteNameError = document.getElementById('siteNameError');
	if( siteName.length > 0){
		siteNameError.style.display = 'none';
	}
	else{
		siteNameError.style.display = 'block';
		ok = false;
	}
	
	// URL
	var siteURLInput = document.getElementById('siteURL');
	var siteURL = trim(siteURLInput.value);
	if( !siteURL.match(/^http(?:|s):\/{2}/) ){
		siteURL = "http://" + siteURL;
		siteURLInput.value = siteURL;
	}
	var siteURLError1 = document.getElementById('siteURLError1');
	var siteURLError2 = document.getElementById('siteURLError2');
	if( siteURL.length > 0){
		siteURLError1.style.display = 'none';
		if( siteURL.match(/^[^ ]+$/) ){
			siteURLError2.style.display = 'none';
		}
		else{
			siteURLError2.style.display = 'block';
			ok = false;
		}
	}
	else{
		siteURLError1.style.display = 'block';
		ok = false;
	}

	// Quick
	var siteQuick = trim(document.getElementById('siteQuick').value);
	var siteQuickError = document.getElementById('siteQuickError');
	if( siteQuick.length > 0){
		siteQuickError.style.display = 'none';
	}
	else{
		siteQuickError.style.display = 'block';
		ok = false;
	}

	// Description
	var siteDescription = trim(document.getElementById('siteDescription').value);
	var siteDescriptionError = document.getElementById('siteDescriptionError');
	if( siteDescription.length > 0){
		siteDescriptionError.style.display = 'none';
	}
	else{
		siteDescriptionError.style.display = 'block';
		ok = false;
	}
	
	// Icon File
	var iconFile = trim(document.getElementById('iconFile').value);
	var iconFileError1 = document.getElementById('iconFileError1');
	if( iconFile.length > 0){
		iconFileError1.style.display = 'none';
	}
	else{
		iconFileError1.style.display = 'block';
		ok = false;
	}
	
	// Screenshot File
	var screenshotFile = trim(document.getElementById('screenshotFile').value);
	var screenshotFileError1 = document.getElementById('screenshotFileError1');
	if( screenshotFile.length > 0){
		screenshotFileError1.style.display = 'none';
	}
	else{
		screenshotFileError1.style.display = 'block';
		ok = false;
	}
	
	// Agree
	var agree = document.getElementById('agree').checked;
	var agreeError = document.getElementById('agreeError');
	if( agree ){
		agreeError.style.display = 'none';
	}
	else{
		agreeError.style.display = 'block';
		ok = false;
	}
	
	if( !ok ){
		alert(errorMessage);
	}
	else{
		// evita cambios
		document.getElementById('floatingCover').style.display = 'block';
		
		document.getElementById('siteName').value = translateCharactersIntoEntities(siteName);
		document.getElementById('siteQuick').value = translateCharactersIntoEntities(siteQuick);
		document.getElementById('siteDescription').value = translateCharactersIntoEntities(siteDescription);
	}
	
	return ok;
	
}

function noteCategories()
{
	var categorySelect = document.getElementById('categorySelect');
	var categories = document.getElementById('categories');
	var categoriesStr = "";
	
	if( categorySelect.selectedIndex != -1 ){
		var i;
		var options = categorySelect.options;
		for(i=0; i<options.length; i++){
			if(options[i].selected){
				categoriesStr += options[i].value + "|";
			}
		}
		categoriesStr = categoriesStr.substr(0,categoriesStr.length-1)
	}
	
	categories.value = categoriesStr;
}


function obtainIconFromSiteURL()
{
    var siteURLInput = document.getElementById('siteURL');
	var siteURL = trim(siteURLInput.value);
	if( !siteURL.match(/^http(?:|s):\/{2}/) ){
		siteURL = "http://" + siteURL;
		siteURLInput.value = siteURL;
	}
    
    var siteurl = document.getElementById('siteURL').value;
    alert(siteurl);
	// Values you provide
	createRequest();
	request.open("GET", siteurl, true);
	request.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
	request.onreadystatechange = returnObtainIconFromSiteURL;
	request.send(null);
}

function translateCharactersIntoEntities(v)
{
	v = v.replace("À","&Agrave;");
	v = v.replace("Á","&Aacute;");
	v = v.replace("Ä","&Auml;");
	v = v.replace("È","&Egrave;");
	v = v.replace("É","&Eacute;");
	v = v.replace("Ë","&Euml;");
	v = v.replace("Ì","&Igrave;");
	v = v.replace("Í","&Iacute;");
	v = v.replace("Ï","&Iuml;");
	v = v.replace("Ò","&Ograve;");
	v = v.replace("Ó","&Oacute;");
	v = v.replace("Ö","&Ouml;");
	v = v.replace("Ù","&Ugrave;");
	v = v.replace("Ú","&Uacute;");
	v = v.replace("Ü","&Uuml;");
	v = v.replace("Ñ","&Ntilde;");
	v = v.replace("Ç","&Ccedil;");
	
	v = v.replace("à","&agrave;");
	v = v.replace("á","&aacute;");
	v = v.replace("ä","&auml;");
	v = v.replace("è","&egrave;");
	v = v.replace("é","&eacute;");
	v = v.replace("ë","&euml;");
	v = v.replace("ì","&igrave;");
	v = v.replace("í","&iacute;");
	v = v.replace("ï","&iuml;");
	v = v.replace("ò","&ograve;");
	v = v.replace("ó","&oacute;");
	v = v.replace("ö","&ouml;");
	v = v.replace("ù","&ugrave;");
	v = v.replace("ú","&uacute;");
	v = v.replace("ü","&uuml;");
	v = v.replace("ñ","&ntilde;");
	v = v.replace("ç","&ccedil;");
	
	v = v.replace('"',"&#34;");
	v = v.replace("'","&#8242;");
	v = v.replace("`","&#8242;");
	v = v.replace("´","&#8242;");
	v = v.replace("‘","&#8242;");
	v = v.replace("’","&#8242;");
	v = v.replace("¡","&#161;");
	v = v.replace("¿","&#191;");
	v = v.replace("|","&#166;");
	v = v.replace("–","&#8211;");
	
	return v;
}

function returnObtainIconFromSiteURL()
{
    alert(request.readyState);
	if (request.readyState == 4) {
		// Parse and interpret results
        alert(request.responseText);
        var match = /<link +rel=[\"\']apple-touch-icon[\"\'] +href=[\"\']([^\"\']+)[\"\']/.exec(request.responseText);
        alert(match[0]);
        alert(match[1]);
    }
}


