var FriendMail = Class.create({
	formId:     'sendFriendForm',
	
	initialize: function() {
        //
    },

    send: function() {
    	$('submit').disabled = true;
    	var pars = $(this.formId).serialize();
        new Ajax.Request(document.location.href, {
            method: 'post',
            parameters: pars,
            onSuccess: function(response) {
        		$('submit').disabled = false;
        		var xmlDoc = response.responseXML;
                if (!xmlDoc) {
                    alert('Nepodarilo sa spracovať odpoveď zo servera');
                    return;
                }

                var errors = xmlDoc.getElementsByTagName('error');

                if (errors.length > 0) {
       				var result = '';
       				for (var i = 0; i < errors.length; i++) {
       					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
       				}
       				alert(result);
       				return;
                }

                var response = xmlDoc.getElementsByTagName('message');
                var r = response[0];
                var text = r.attributes.getNamedItem("text").nodeValue;
                alert(text);
                $('sendFriendForm').reset();
            },
            onFailure: function() {
                alert('Na serveri vznikla chyba. Nepodarilo sa odoslať link vášmu priatelovi. Skúste to prosím znovu');
                $('submit').disabled = false;
            }
        });

    }
});

var Anketa = Class.create({
	
	initialize: function() {
        //
    },

    send: function(question, answer) {
        new Ajax.Request(document.location.href, {
            method: 'post',
            parameters: {'question':question, 'answer':answer},
            onSuccess: function(response) {
        		var xmlDoc = response.responseXML;
                if (!xmlDoc) {
                    alert('Nepodarilo sa spracovať odpoveď zo servera');
                    return;
                }

                var errors = xmlDoc.getElementsByTagName('error');

                if (errors.length > 0) {
       				var result = '';
       				for (var i = 0; i < errors.length; i++) {
       					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
       				}
       				alert(result);
       				return;
                }

                var response = xmlDoc.getElementsByTagName('message');
                var r = response[0];
                var text = r.attributes.getNamedItem('text').nodeValue;

                var new_content = r.attributes.getNamedItem('content').nodeValue;
                
                $('anketa').innerHTML = new_content;
                
                alert(text);
            },
            onFailure: function() {
                alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
            }
        });

    }
});

function complete_firm(ico)
{
	if (ico == null || ico == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'get',
        parameters: {'ico':ico, 'type':1},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }
            
            var fields = new Array('firma_nazov', 'firma_ic_dph', 'firma_web', 'firma_fax', 'firma_ulica', 'firma_mesto', 'firma_psc', 'firma_kraj', 'firma_krajina', 'firma_ulica_fa', 'firma_mesto_fa', 'firma_psc_fa', 'firma_kraj_fa', 'firma_krajina_fa');

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				if (errors[0].attributes.getNamedItem('message').nodeValue != 'nenajdeny objekt')
   				{
   					return;
   				}
            }

            var response = xmlDoc.getElementsByTagName('item');
            
            for (i=0; i < response.length; i++)
            {
            	var value = response[i].attributes.getNamedItem('value').value;
            	var name = response[i].attributes.getNamedItem('name').value;
            	
            	if (name == 'firma_kraj' || name == 'firma_krajina' || name == 'firma_kraj_fa' || name == 'firma_krajina_fa')
            	{
            		var options = document.getElementsByName(name)[0].options;
            		
            		for (j=0; j<options.length; j++)
            		{
            			if (options[j].value == value)
            			{
            				options[j].selected = "selected";
            			}
            		}
            		
            	}
            	else if (value !== '')
            	{
           			document.getElementsByName(name)[0].value = value;
            	}
            }
            
            if (response.length > 0)
            {
            	// zname ico
            	for (i=0; i < fields.length; i++)
            	{
            		document.getElementsByName(fields[i])[0].readOnly = "readonly";
            	}
            }
            else
            {
            	// nezname ico
            	for (i=0; i < fields.length; i++)
            	{
            		if (document.getElementsByName(fields[i])[0].readOnly)
            		{
            			if (fields[i] == 'firma_kraj' || fields[i] == 'firma_krajina' || fields[i] == 'firma_kraj_fa' || fields[i] == 'firma_krajina_fa')
		            	{
		            		var options = document.getElementsByName(fields[i])[0].options;
		            		
		            		options[0].selected = "selected";
		            	}
		            	else
		            	{
            				document.getElementsByName(fields[i])[0].value = "";
		            	}
            		}
            		document.getElementsByName(fields[i])[0].readOnly = false;
            	}
            }
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

function complete_school(ico)
{
	if (ico == null || ico == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'get',
        parameters: {'ico':ico, 'type':2},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }
            
            var fields = new Array('skola_nazov', 'skola_ic_dph', 'skola_typ', 'skola_web', 'skola_fax', 'skola_ulica', 'skola_mesto', 'skola_psc', 'skola_kraj', 'skola_krajina', 'skola_ulica_fa', 'skola_mesto_fa', 'skola_psc_fa', 'skola_kraj_fa', 'skola_krajina_fa');

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				if (errors[0].attributes.getNamedItem('message').nodeValue != 'nenajdeny objekt')
   				{
   					return;
   				}
            }

            var response = xmlDoc.getElementsByTagName('item');
            
            for (i=0; i < response.length; i++)
            {
            	var value = response[i].attributes.getNamedItem('value').value;
            	var name = response[i].attributes.getNamedItem('name').value;
            	
            	if (name == 'skola_kraj' || name == 'skola_krajina' || name == 'skola_kraj_fa' || name == 'skola_krajina_fa' || name == 'skola_typ')
            	{
            		var options = document.getElementsByName(name)[0].options;
            		
            		for (j=0; j<options.length; j++)
            		{
            			if (options[j].value == value)
            			{
            				options[j].selected = "selected";
            			}
            		}
            		
            	}
            	else if (value !== '')
            	{
            		document.getElementsByName(name)[0].value = value;
            	}
            }
            
            if (response.length > 0)
            {
            	// zname ico
            	for (i=0; i < fields.length; i++)
            	{
            		document.getElementsByName(fields[i])[0].readOnly = "readonly";
            	}
            }
            else
            {
            	// nezname ico
            	for (i=0; i < fields.length; i++)
            	{
            		if (document.getElementsByName(fields[i])[0].readOnly)
            		{
            			if (fields[i] == 'skola_kraj' || fields[i] == 'skola_krajina' || fields[i] == 'skola_kraj_fa' || fields[i] == 'skola_krajina_fa' || fields[i] == 'skola_typ')
		            	{
		            		var options = document.getElementsByName(fields[i])[0].options;
		            		
		            		options[0].selected = "selected";
		            	}
		            	else
		            	{
            				document.getElementsByName(fields[i])[0].value = "";
		            	}
            		}
            		document.getElementsByName(fields[i])[0].readOnly = false;
            	}
            }
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

function fileRequest(id, tag)
{
	if (id == null || id == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'post',
        parameters: {'id':id},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				alert(result);
   				return;
            }

            var response = xmlDoc.getElementsByTagName('message');
            var text = response[0].nodeValue;

            var new_content = '<span>Vaša žiadosť bola poslaná na spracovanie.</span>';
            
            document.getElementById(tag).innerHTML = new_content;
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

function getDate(date, tag)
{
	if (date == null || date == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'post',
        parameters: {'date':date},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				alert(result);
   				return;
            }

            var response = xmlDoc.getElementsByTagName('message');
            var text = '';
            
            if (response[0].textContent)
            {
            	text = response[0].textContent;
            	document.getElementById(tag).innerHTML = decodeXml(text);
            }
            else if (response[0].innerText)
            {
            	text = response[0].innerText;
            	document.getElementById(tag).innerHTML = decodeXml(text);
            }
            else if (response[0].text)
            {
            	text = response[0].text;
            	document.getElementById(tag).innerHTML = decodeXml(text);
            }
            else
            {
            	alert('Váš prehliadač nepodporuje funkcionalitu kalendára.');
            }
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

function register(id)
{
	if (id == null || id == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'post',
        parameters: {'register':id},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				alert(result);
   				return;
            }

            var response = xmlDoc.getElementsByTagName('message');
            //var text = response[0].textContent;
            var text = '';
            
            if (response[0].textContent)
            {
            	text = response[0].textContent;
            }
            else if (response[0].innerText)
            {
            	text = response[0].innerText;
            }
            else if (response[0].text)
            {
            	text = response[0].text;
            }
            else
            {
            	//alert('Váš prehliadač nepodporuje funkcionalitu kalendára.');
            }
            
            alert(text);
            window.location.reload();
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

function cancelRegistration(id)
{
	if (id == null || id == '')
	{
		return;
	}
	
	new Ajax.Request(document.location.href, {
        method: 'post',
        parameters: {'register':id},
        onSuccess: function(response) {
    		var xmlDoc = response.responseXML;
            if (!xmlDoc) {
                alert('Nepodarilo sa spracovať odpoveď zo servera');
                return;
            }

            var errors = xmlDoc.getElementsByTagName('error');

            if (errors.length > 0) {
   				var result = '';
   				for (var i = 0; i < errors.length; i++) {
   					result += errors[i].attributes.getNamedItem('message').nodeValue + "\n";
   				}
   				alert(result);
   				return;
            }

            var response = xmlDoc.getElementsByTagName('message');
            //var text = response[0].textContent;
            var text = '';
            
            if (response[0].textContent)
            {
            	text = response[0].textContent;
            }
            else if (response[0].innerText)
            {
            	text = response[0].innerText;
            }
            else if (response[0].text)
            {
            	text = response[0].text;
            }
            else
            {
            	//alert('Váš prehliadač nepodporuje funkcionalitu kalendára.');
            }
            
            alert(text);
            window.location.reload();
        },
        onFailure: function() {
            alert('Na serveri vznikla chyba. Nepodarilo sa spracovať Váš hlas. Skúste to prosím znovu');
        }
    });
}

// zdroj: http://dracoblue.net/dev/encodedecode-special-xml-characters-in-javascript/155/

var xml_special_to_escaped_one_map = {
    '&': '&amp;',
    '"': '&quot;',
    '<': '&lt;',
    '>': '&gt;'
};
 
var escaped_one_to_xml_special_map = {
    '&amp;': '&',
    '&quot;': '"',
    '&lt;': '<',
    '&gt;': '>'
};
 
function encodeXml(string) {
    return string.replace(/([\&"<>])/g, function(str, item) {
        return xml_special_to_escaped_one_map[item];
    });
};
 
function decodeXml(string) {
    return string.replace(/(&quot;|&lt;|&gt;|&amp;)/g,
        function(str, item) {
            return escaped_one_to_xml_special_map[item];
    });
}
