var onAdm = false;
var actualState = 0;
var actualCountry = 0;

function preview(event_type){

	if (validateRequiredFields()){
	
		var great = '';
		var who = '';
		var what = '';
		var when = '';
		var where = '';
		var why = '';
		var notes = '';
	
		var theForm = document.event;
	
		for (var i = 0; i < theForm.elements.length; i++) {
	
			theField = theForm.elements[i];
			if (theField.attributes.group) {
	
				val = getValue(theField);
	
				if (val.length > 0) {
	
					switch(theField.attributes.group.value){
	
						case 'great':
							great += val + '<br />';
							break;
	
						case 'who':
							who += val + '<br />';
							break;
	
						case 'what':
							what += val + '<br />';
							break;
	
						case 'when':
							when += val + '<br />';
							break;
	
						case 'where':
							where += val + '<br />';
							break;
	
						case 'why':
							why += val + '<br />';
							break;
	
						case 'notes':
							notes += val + '<br />';
							break;
					}
	
				}
			}
	
		}
	
	
		var html = '<div class="content">';
	    html += '<h3>Details of your great25 ' + event_type + ' recommendation.</h3>';
	    html += '<p class="lefttext">Please check your recommendation and: 1)  click on Post to web to send it to the web or, 2) click on Edit info if you\'d like to make some changes. What you see here is a quick list of the items you recommended. They\'ll be a part of a search tool for finding great25 events and activities. When people search for your great25 the data will be descriptive. The purpose here is a quick check.</p>';
	    html += '<p class="red">Your recommendation is:</p>';
	    html += '<p class="lefttext">' + great + '</p>';
	    html += '<p class="red">And you said it\'s great for: </p>';
	    html += '<p class="lefttext">' + who + '</p>';
	    html += '<p class="red">What? About the Event:</p>';
	    html += '<p class="lefttext">' + what + '</p>';
	    html += '<p class="red">Where you saw it, when you went, how much it cost, and why it was great:</p>';
	    html += '<p class="lefttext">' + where + when + why +  '</p>';
		html += '<p class="red">Other considerations:</p>';
	    html += '<p class="lefttext">' + notes + '</p><p class="red">Thanks!</p>';
		html += '<label>Your information looks good. Remember if you are a promoter, register or login to enable further management of your events. <input type="button" id="ok_upload" value="Post to Web" onClick="saveEvent()" class="red" />';
		html += '<br /><br />Need\'s editing, go to ';	
		html += '<input type="button" id="ok_edit" value="Edit info" onClick="unPreview();return false;" class="red" />';
		html += '</label></div>';
	
		var centerDiv = document.getElementById("center");
		var centerPreviewDiv = document.getElementById("centerPreview");
	
		centerPreviewDiv.innerHTML = html;
		centerDiv.style.display = 'none';
		centerPreviewDiv.style.display = 'block';
		scroll(0,0);
	}
}

function validateRequiredFields(){
	
	var start_date = "";
	var end_date = "";
	var country = document.getElementById('country');
	country = country.options[country.selectedIndex].value;
	var city = document.getElementById('city').value;	
	
	var errors = "";
	
	if (document.getElementById('start_date') != null) {
		start_date = document.getElementById('start_date').value;
	
		if (Date.parse(start_date) > Date.parse(end_date)) {
			errors += "* Start date must be before end date\n";		
		}
	}
	
	if (document.getElementById('end_date') != null) {
		end_date = document.getElementById('end_date').value;
		if (Date.parse(end_date) < Date.parse(current_date)) {
			errors += "* End date must be current\n";		
		}
	}	
	
	if (country == "" || country <= 0){
		errors += "* Country\n";		
	} 
	if (country == "US" || country == "CA"){		
		if (actualState == "" || actualState <= 0){
			errors += "* State/Province\n";
		}		
	} else if (city == ""){
			errors += "* City\n";
	}
	
	var field_name;
	for (field_name in requiredFields){		
		if (field_name != "country" && field_name != "state" && field_name != "city"
			&& document.getElementById(field_name).value == ""){
				errors += "* " + requiredFields[field_name] + "\n";
		}		
	}
	
	if (errors == "") {	
		return true;	
	} else {
		alert("Please complete the required fields:\n" + errors + " in order to create a great search.");
		return false;
	}
	
}

function saveEvent(){

	if (validateRequiredFields()){
		var theForm = document.event;
	
		for (var i = 0; i<theForm.elements.length; i++) {
	
			theField = theForm.elements[i];
			if (theField.type == 'checkbox') {
			
				theField.value = "chkTrue";
			
			}
			
		}
		
		if (document.getElementById("start_date") != null)
			document.getElementById("start_date").disabled = false;
		
		if (document.getElementById("end_date") != null)
			document.getElementById("end_date").disabled = false;
		
		document.event.submit();
	}
}

function getValue(formField){

	var val = '';

	var fieldName = eval(formField.attributes.group.value+'Fields')[formField.name];

	switch(formField.type){

		case 'checkbox':

			if (formField.checked){
				val = formField.value;
			}

			break;

		case 'select-one':
			try {
				if (formField.options[formField.selectedIndex].value != ''){
					val = fieldName + ': ' + formField.options[formField.selectedIndex].text;
				}
			}catch(e){
				alert(formField.name);
			}

			break;

		case 'textarea':
		case 'text':
			
			if (formField.value.length > 0) 
				val = fieldName + ': ' + formField.value;

			break;

	}

	return val;

}

function unPreview(){

	var centerDiv = document.getElementById("center");
	var centerPreviewDiv = document.getElementById("centerPreview");
	centerPreviewDiv.style.display = 'none';
	centerDiv.style.display = 'block';
}

function initStateValues() {
	var objStateText = document.getElementById("state_text");
	var objStateSelect = document.getElementById("state_select");
	objStateSelect.style.display = "none";
	objStateSelect.disabled = true;
	objStateText.style.display = "block";
	objStateText.disabled = false;
}

function stateChange(objState) {
	actualState = objState.value;
}

function getEventValues(eventId) {
    serverRequest("inc/event.php?id=" + eventId, "eventDataArrival");
}
        
function getAdmEventValues(eventId) {
	onAdm = true;
    serverRequest("event.php?id=" + eventId, "eventDataArrival");
}
        
function serverRequest(url, returnFunctionName){  
    var xmlHttpReq = false;
    var self = this;
    if (window.XMLHttpRequest) { // Mozilla/Safari
        self.xmlHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // IE
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('GET', url, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            var response = self.xmlHttpReq.responseText;
            eval(returnFunctionName)(response);
        }
    }
    self.xmlHttpReq.send('');
}        
        
function eventDataArrival(responce) {
	var arrFilas = responce.split("<#>");
	var cantFilas = arrFilas.length;
	
	for (var i = 0; i < cantFilas; i++) {
		var strRow = arrFilas[i];
		var arrCols = strRow.split("=>");
        
        var fieldName = arrCols[0];
        if (fieldName == "state") {
			var objStateText = document.getElementById("state_text");
			var objStateSelect = document.getElementById("state_select");
			var objCountry = document.getElementById("country");
			var countryCode = objCountry.value;
			
			if (countryCode == "US" || countryCode == "CA") {
				objStateSelect.style.display = "block";
				objStateSelect.disabled = false;
				objStateText.style.display = "none";
				objStateText.disabled = true;
				fieldName = "state_select";
				
				actualState = arrCols[1];
				
				var aux = onAdm ? "../": "";
				
				serverRequest(aux + "data/us_states.php?country=" + countryCode, "searchDataArrival");
				
			} else {
				objStateSelect.style.display = "none";
				objStateSelect.disabled = true;
				objStateText.style.display = "block";
				objStateText.disabled = false;
				fieldName = "state_text";
			}
		}
                
		var obj = document.getElementById(fieldName);
		if (obj != null) {
			switch (obj.tagName) {
				case "INPUT":
					switch (obj.type) {
						case "text":
							obj.value = arrCols[1];
							break;
                      
						case "checkbox":
							obj.checked = arrCols[1] != "" ? "checked": "";
							break;
                    }                      
					break;
                      
				case "SELECT":
					selectInCombo(obj, arrCols[1]);
					break;
                      
                case "TEXTAREA":
					obj.value = arrCols[1];
					break;
                  
                default:
					alert(obj.tagName + " / " + arrCols[0] + " / " + arrCols[1]);
            }
        }
    }
}

function countryChange(country) {
	var objStateText = document.getElementById("state_text");
	var objStateSelect = document.getElementById("state_select");
	actualCountry = country.value;

	if (objStateSelect != null) {
		if (actualCountry == "US" || actualCountry == "CA") {
			objStateSelect.style.display = "block";
			objStateSelect.disabled = false;
			objStateText.style.display = "none";
			objStateText.disabled = true;
			
			if (document.getElementById("tr_zip")){
				document.getElementById("tr_zip").style.display = 'block';
			}		
			
			serverRequest("data/us_states.php?country=" + actualCountry, "searchDataArrival");
			
		}else{
			objStateSelect.style.display = "none";
			objStateSelect.disabled = true;
			objStateText.style.display = "block";
			objStateText.disabled = false;
			
			removeAllOptions(objStateSelect);
			
			if (document.getElementById("tr_zip")){
				document.getElementById("tr_zip").style.display = 'none';
			}
		}
	}
}

function searchDataArrival(responce) {
	var objState = document.getElementById("state_select");
	removeAllOptions(objState);
	
    var arrFilas = responce.split("<#>");
	var cantFilas = arrFilas.length;
	
	var option = document.createElement("OPTION");
	option.value = 0;
	option.text = "2nd: Click to select a State/Province";	
	objState.options.add(option);
	
	for (var i = 0; i < cantFilas; i++) {
		var strRow = arrFilas[i];
		
		var arrCols = strRow.split("<@>");

		var option = document.createElement("OPTION");
		option.value = arrCols[0];
		option.text = arrCols[1];

		if (option.value == actualState) {
			option.selected = true;
		}
		
		objState.options.add(option);
		
	}
}

function actionCheck(chkObject, id) {
	document.getElementById('image_' + id).disabled = (chkObject.value != "change");
}

///////////////////////////////////////////////////////////////
//FUNCIONES DE MANEJO DE COMBOS
///////////////////////////////////////////////////////////////
function selectInCombo(objCombo, paramerter){
    try{
        var count = objCombo.options.length;
        objCombo.selectedIndex = -1;
        
        for (i = 0; i < count; i++){
            if (objCombo.options[i].value == paramerter){
                objCombo.selectedIndex = i;
                return;
            }
        }
    }catch(e){

    }
}

function getComboText(objCombo, value){
    var count = objCombo.options.length;
    
    for (i = 0; i < count; i++){
        if (objCombo.options[i].value == value){
            return objCombo.options[i].text;
        }
    }
}

function getComboOption(objCombo, value){
    var count = objCombo.options.length;
    
    for (i = 0; i < count; i++){
        if (objCombo.options[i].value == value){
            return objCombo.options[i];
        }
    }
}

function removeAllOptions(objCombo) {
    for (i = objCombo.length; i >= 0; i--) {
        objCombo.remove(i);
    }
}
