/**
 * @author alan
 */
var siteurl="http://www.cycle-route.com/";
var nukeurl=siteurl;
var isop = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
var ischrome = navigator.userAgent.toLowerCase().indexOf('chrome') != -1;

function getElm(elm)
{
	return document.getElementById(elm);
}

function get(elm)
{
	return getElm(elm);
}

function getTag(xml,param)
{
	return xml.getElementsByTagName(param);
}

function getTagAt(tag)
{
	var atts = new Array();
	for(var i=0;i<tag.length;i++)
		atts.push(tag.item(i).nodeValue.toString());

	return atts;
}



function getTagAttr(xml,i,param)
{
	var tag = getTag(xml,param)[i].attributes;
	var atts = new Array();
	for(var i=0;i<tag.length;i++)
		atts.push(tag.item(i).nodeValue.toString());

	return atts;
}

function empty(val)
{
	return (val==null || val=='');
}

function postServ(address, callback, parameters)
{
	function callFunction()
	{
		if (req1.readyState==4) 
		{
				if (req1.status==200) 
				{
						if (processXML!=null)  
						{
							//alert(req1.responseText);
							processXML(req1.responseXML);
								
						}
				}
		}
	}

	var req1 = null;
	var processXML = callback;
	
	if (typeof XMLHttpRequest != "undefined") 
	   req1 =  new XMLHttpRequest();
	else if (window.ActiveXObject) 
	{
	  var ajs = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

	  for (var i=0; i<ajs.length;i++) 
	  {
		try 
		{
			req1 = new ActiveXObject(ajs[i]);
			break;    
		} 
		catch (oError) {
			//Do nothing
		}
	  }
	}

	
	
	req1.onreadystatechange = callFunction;
	req1.open('POST', address, true);
	req1.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req1.setRequestHeader("Content-length", parameters.length);
	req1.send(parameters);
}

function callServ(address, callback)
	{
		function callFunction()
		{
			if (req1.readyState==4)
			{
					if (req1.status==200)
					{
							if (processXML!=null)
							{
								//alert(req1.responseText);
								processXML(req1.responseXML);

							}
					}
			}
		}

		var req1 = null;
		var processXML = callback;

        if (typeof XMLHttpRequest != "undefined")
           req1 =  new XMLHttpRequest();
        else if (window.ActiveXObject)
        {
          var ajs = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

          for (var i=0; i<ajs.length;i++)
          {
            try
            {
                req1 = new ActiveXObject(ajs[i]);
                break;
            }
            catch (oError) {
                //Do nothing
            }
          }
        }


		req1.onreadystatechange = callFunction;
		req1.open('GET', address, true);
		req1.send(null);
	}
	
function jcall(address, callback, content)
{
	function callFunction()
	{
		if (req1.readyState==4) 
		{
				if (req1.status==200) 
				{
						if (processXML!=null)  
							processXML(req1.responseText);
				}
		}
	}
 
	var req1 = null;
	var processXML = callback;
    
    if (typeof XMLHttpRequest != "undefined") 
       req1 =  new XMLHttpRequest();
    else if (window.ActiveXObject) 
    {
      var ajs = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

      for (var i=0; i<ajs.length;i++) 
      {
        try 
        {
            req1 = new ActiveXObject(ajs[i]);
            break;    
        } 
        catch (oError) {
            //Do nothing
        }
      }
    }

    req1.onreadystatechange = callFunction;
	if(empty(content))
	{
		req1.open('GET', address, true);
		req1.send(null);
	}
	else
	{
		req1.open('POST', address, true);
		req1.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req1.setRequestHeader("Content-length", content.length);
		req1.send(content);
	}
}

function callServ(address, callback, async)
{
        function callFunction()
        {
                if (req1.readyState==4)
                {
                                if (req1.status==200)
                                {
                                                if (processXML!=null)
                                                {
                                                        //alert(req1.responseText);
                                                        processXML(req1.responseXML);

                                                }
                                }
                }
        }

        var req1 = null;
        var processXML = callback;

        if (typeof XMLHttpRequest != "undefined")
           req1 =  new XMLHttpRequest();
        else if (window.ActiveXObject)
        {
          var ajs = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

          for (var i=0; i<ajs.length;i++)
          {
                try
                {
                        req1 = new ActiveXObject(ajs[i]);
                        break;
                }
                catch (oError) {
                        //Do nothing
                }
          }
        }
 if(async==null||async=='')
                async = true;

        req1.onreadystatechange = callFunction;
        req1.open('GET', address, true);
        req1.send(null);
}



function getregions(cid)
{
	postServ('/includes/basejax.php', getregionsresult,'op=getregions&cid='+cid);
}

function getregionsresult(xml)
{
	var passed=getTag(xml,'passed')[0].firstChild.data;
	var elm = getTag(xml,'elm')[0].firstChild.data;
	var rlist = getElm(elm);
	if(passed=='true')
	{
		while(rlist.length>0)
			rlist.remove(0);
		var nns = getTag(xml,'name');
		var vns = getTag(xml,'value');
		var sns = '';//getTag(xml,'select');
		var noResults = nns.length;

		for(var i=0;i<noResults;i++)
		{
			if(!document.all||isop)
				rlist.add(new Option(nns[i].firstChild.data,vns[i].firstChild.data),null);
			else
				rlist.add(new Option(nns[i].firstChild.data,vns[i].firstChild.data));

		}
	}
	return true;
}

function getcountries(cid)
{
	postServ('/includes/basejax.php', getcountriesresult,'op=getcountries&cid='+cid);
}

function getcountriesresult(xml)
{
	var passed=getTag(xml,'passed')[0].firstChild.data;
	var elm = getTag(xml,'elm')[0].firstChild.data;
	var rlist = getElm(elm);
	if(passed=='true')
	{
		while(rlist.length>0)
			rlist.remove(0);
		var nns = getTag(xml,'name');
		var vns = getTag(xml,'value');
		var sns = '';//getTag(xml,'select');
		var noResults = nns.length;

		for(var i=0;i<noResults;i++)
		{
			if(!document.all||isop)
				rlist.add(new Option(nns[i].firstChild.data,vns[i].firstChild.data),null);
			else
				rlist.add(new Option(nns[i].firstChild.data,vns[i].firstChild.data));

		}
	}
	return true;
}

function hide(elm)
{
	getElm(elm).style.display='none';
}

function show(elm)
{
	getElm(elm).style.display='block';
}

function disableCtrlKeyCombination(e)
{
    //list all CTRL + key combinations you want to disable
    var forbiddenKeys = ['v'];
    var key;
    var isCtrl;

    if(window.event)
    {
            key = window.event.keyCode;     //IE
            if(window.event.ctrlKey || window.event.metaKey)
                    isCtrl = true;
            else
                    isCtrl = false;
    }
    else
    {
            key = e.which;     //firefox
            if(e.ctrlKey || e.metaKey)
                    isCtrl = true;
            else
                    isCtrl = false;
    }

    //if ctrl is pressed check if other key is in forbidenKeys array
    if(isCtrl)
    {
            for(i=0; i<forbiddenKeys.length; i++)
            {
                    //case-insensitive comparation
                    if(forbiddenKeys[i].toLowerCase() == String.fromCharCode(key).toLowerCase())
                    {
                    	return false;
                    }
            }
    }
    return true;
}

