//
//	-=Wasserjungfer=-
//
//		
//
//
//

	var wElts = new Array();
	var wContent = new Array();

	function _wGetEl(id)
	{
		return document.getElementById(id);
	}
	
	function getEl(el)
	{
	    return document.getElementById(el);
	}
	
	function ge(id)
	{
	    var val = "";
	    try { val = document.getElementById(id); } catch(e){}
	    return val;
	}

	function _wGetAttr(el,attr)
	{
		return el.getAttribute(attr);
	}
	
	function _wAddOpt(obj,opt)
	{
		try
		{
			obj.add(opt,null); // standards compliant
		}
		catch(ex)
		{
			obj.add(opt); // IE only
		}
	}
	
	function _wGetTxt(obj)
	{
		return (obj.textContent? 
		                        obj.textContent 
		                        : 
		                        ( obj.nodeValue ? 
		                                        obj.nodeValue 
		                                        : 
		                                        obj.firstChild? 
		                                                        obj.firstChild.nodeValue 
		                                                        : 
		                                                        '' 
		                                                        ) );
	}

	function _wElt(el)
	{
		if(wElts[el])	return wElts[el];
		else return new Object();
	}
	
	function _wOptClear(obj)
	{
		while(obj.length)	obj.remove(0);
		return obj;
	}
	
	function WTypeNode(id, value, children)
	{
		this.wID = "";
		this.id = id;
		this.value = value;
		this.children = children;
		this.checked = false;	

		this.selected = false;
		this.parent_id = -1;
	}
	
	function _wDeselectNodeChildren(node)
	{
		for (var i=0; i<node.length; i++)
		{
			node[i].selected = false;
			node[i].parent_id = -1;
			if (node[i].children) _wDeselectNodeChildren(node[i].children);
		}
	}
	
	function _wMarkSelectedNodes(node_id, parent_id)
	{
		for (var i=0; i<wTypeNodes.length; i++)
		{
			if (wTypeNodes[i].id == node_id) 
				if (wTypeNodes[i].selected)
				{
					wTypeNodes[i].selected = false;
					wTypeNodes[i].parent_id = -1;
					_wDeselectNodeChildren(wTypeNodes[i].children);
				}
				else
				{
					wTypeNodes[i].selected = true;
					wTypeNodes[i].parent_id = parent_id;
				}

			for(var j = 0; j < wTypeNodes[i].children.length; j++)
			{
				var jnode  = wTypeNodes[i].children[j];
				
				if (jnode.id == node_id)
				{
					if (jnode.selected)
					{
						jnode.selected = false;
						jnode.parent_id = -1;
						if (jnode.children) _wDeselectNodeChildren(jnode.children);
					}
					else
					{
						jnode.selected = true;
						jnode.parent_id = wTypeNodes[i].id;
					}

				}
				
				for (var k = 0; k < jnode.children.length; k++)
				{
					var knode = jnode.children[k];
					
					if (knode.id == node_id)
						if (knode.selected)
						{
							knode.selected = false;
							knode.parent_id = -1;
							//if (knode.children) _wDeselectNodeChildren(knode.children);
						}
						else 
						{
							knode.selected = true;
							knode.parent_id = jnode.id;
						}
				}
			}
		}
	}

	function WSelectedTypeNode(id, parent_id)
	{
		this.id = id;
		this.parent_id = parent_id;
	}	

	function _wAddToSelectedNodes(NodesArray)
	{
		wSelectedTypeNodes = new Array();
		
		for (var i=0; i<NodesArray.length; i++)
		{
			for(var j = 0; j < NodesArray[i].children.length; j++)
			{
				var jnode  = NodesArray[i].children[j];
				if (jnode.selected)
					wSelectedTypeNodes[wSelectedTypeNodes.length] = new WSelectedTypeNode(jnode.id, jnode.parent_id);
			
				// the following cycle for 3 levels of object types 
				/*
				for (var k = 0; k < jnode.children.length; k++)
				{
					var knode = jnode.children[k];
					if (knode.selected)
						wSelectedTypeNodes[wSelectedTypeNodes.length] = new WSelectedTypeNode(knode.id, knode.parent_id);
				}
				*/
			}
		}	
	}
	
	function _wRemoveCategoriesFromFinalList(category_id)
     {
        if( wSelectedTypeNodes.length == 1 && wStep == 6 ) { alert(markupList["err_del_last"]); return; }
         for (var i=0; i<wSelectedTypeNodes.length; i++)
         {
             if (wSelectedTypeNodes[i].id == category_id) wSelectedTypeNodes.splice(i, 1); 
         }
     }

	
	function _wCreateInp(el, inp_id, val, node)
	{
		var inp = document.createElement("input");
		
		inp.type = "checkbox";
		inp.checked = true;
		inp.value = val;
		inp.id = inp_id; 
		el.appendChild(inp);
		
		inp.onclick = function () 
		{
			//if (this.checked) node.checked = true; 
			//else node.checked = false; 
			
			if (this.checked) alert("checked");
			else alert("not checked");
		}	
		
		return inp;		
	}
	
	function _wChangeLetter(letter)
	{
		wCityLetter = letter;
	}

	function WCityItem(id, name)
	{
		this.id = id;
		this.name = name;
	}

	function _wAddCityToSelectedItems(city_id, city_name)
	{
		var i = 0;
		if (wCityList.length>0) i = wCityList.length;

		var exists = false;
		for (var j=0; j<wCityList.length; j++)
			if ((wCityList[j].id==city_id) && (wCityList.name[j]==city_name)) exists = true;
		
		if (!exists) wCityList[i] = new WCityItem(city_id, city_name);
	}

	function _wRemoveFromSelectedCities(city_id)
     {
         if( wCityList.length == 1 && wStep == 6 ) { alert(markupList["err_del_last"]); return; }
          for (var i=0; i<wCityList.length; i++)
               if (wCityList[i].id==city_id) wCityList.splice(i,1);
     }
	

    function _wGetRadioValue(name)
    {
        var list = document.getElementsByTagName("input");
        
        for(i = 0; i < list.length; i++)
            if(list[i].name == name)
                if(list[i].checked)return list[i].value;
        
        return null;
    }

	function _wSendDataToServer(xmlString,url,func)
	{
	  xmlHttp = AjaxCreate();
	  xmlHttp.open("POST", url, true);
	  xmlHttp.setRequestHeader("Content-Type", "text/xml");

	  xmlHttp.onreadystatechange = function (){
    		if (xmlHttp.readyState == 4) {
		    	var status = xmlHttp.status;
		    	if (status == 200) {
		    		//alert('Successfully sent');
				func(xmlHttp.responseText,xmlHttp.responseXML);
		    	} else if (status == 400) {
		    		alert('Wrong request!');
		    	} else if (status == 500) {
		    		alert('Server Error (500)');
		    	} else if (status == 503) {
					alert('need to retry');
				//alert('Server is busy. Запрос будет повторен через: '+time+' секунд');
				//setTimeout(AjaxRequest(req,url,workfn),time);
		    	} else {
		    		var er = 'Wrong server response - error '+status;
		    		alert(er);
		    	}
		    }
	  }

	  xmlHttp.send(xmlString);
	}

	function _wSendLetterToServerAndLoadCityList()
   	{ 	    
        var xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
        + "<loadcities>"
        + "<letter>"+wCityLetter+"</letter>"
        + "<countryid>"+wCountryId+"</countryid>"
        + "</loadcities>";
        
        _wSendDataToServer(xmlString,"xml/cities.aspx",fill_cities_list)
	}
   
	function _wFindLink(text, domen)
	{
		var txt = "";
		var pos = text.indexOf(domen);
		
		var dom_index;
		var space_index;
		
		if (pos == -1)
			txt = text;
		else 
		{
			txt += text.substring(0, pos);
			while (pos < text.length)
			{
				dom_index = text.indexOf(domen, pos);  
				
				if (dom_index != -1)
				{
					txt += text.substring(pos, dom_index);

					if (text.indexOf(" ", dom_index) == -1)
						space_index = text.length;
					else 
						space_index = text.indexOf(" ", dom_index);

					var link = text.substring(dom_index, space_index);
					
					pos = space_index;
					
					if (domen.indexOf("www")!=-1)
						txt += "<a class='banlink' href='http://"+link+"'>" + link + "</a>";
					else
						txt += "<a class='banlink' href='"+link+"'>" + link + "</a>";
				}
				else 
				{
					pos = text.length;
				}
			}
			//alert('AGA!  '+txt);
			
			var ind1;
			var ind2;
			var tag = "";
			ind1 = text.lastIndexOf(domen);
			ind2 = text.indexOf(" ", ind1);
			if (ind2 != -1) tag = text.substring(ind2, text.length);
			
			txt += tag; 
		}

		return txt;
	}

	function _wFindEmail(text, domen)
	{
		var txt = "";
		var pos = text.indexOf(domen);
		
		var dom_index;
		var space_index;
		var pre_space_index;

		if (pos == -1)
			txt = text;
		else 
		{
			pre_space_index = text.substring(0, pos).lastIndexOf(" ");
			if (pre_space_index == -1) pre_space_index = 0;

			txt += text.substring(0, pre_space_index);
			
			var ii=0;
			while (pos < text.length)
			{
				dom_index = text.indexOf(domen, pos);  
				
				if (dom_index != -1)
				{
					if (text.indexOf(" ", dom_index) == -1)
						space_index = text.length;
					else 
						space_index = text.indexOf(" ", dom_index);

					if (text.substring(0, dom_index).lastIndexOf(" ") == -1)
						pre_space_index = 0;
					else 
						pre_space_index = text.substring(0, dom_index).lastIndexOf(" ");
					
					if (ii == 0)
						txt += " ";
					else
						txt += text.substring(pos, pre_space_index) + " ";

					var link = text.substring(pre_space_index, space_index);
					
					pos = space_index;
					
					txt += "<a class='banlink' href='mailto:"+link+"'>" + link + "</a>";
					
					ii++;
				}
				else 
				{
					pos = text.length;
				}
			}
			
			var ind1;
			var ind2;
			var tag = "";
			ind1 = text.lastIndexOf(domen);
			ind2 = text.indexOf(" ", ind1);
			if (ind2 != -1) tag = text.substring(ind2, text.length);
			
			txt += tag; 
		}
		return txt;
	}

    function _wCheckForbiddenSymbols(text)
    {
        if (text.indexOf("<")>-1 || text.indexOf(">")>-1) return false;
        else return true;
      
    }
	
	function _wChangeAdvText(srcelement, element_id)
	{
	    var text = srcelement.value;
		var max_symbols = wMaxSymbolsInAdvBanner;
		
		if (!_wCheckForbiddenSymbols(text)) 
		{
		    alert(markupList["err_forbidden_symbols"]); 
		    return; 
		}
		

		if (text.length >= max_symbols)
		{
			alert (markupList["err_long_text"]);
			text = text.substr(0,max_symbols-1);
			srcelement.value = text;
		}
		    obj = _wGetEl(element_id);
		    var txt = text;
		    //txt = _wFindLink(txt, "http://www.");
		    txt = _wFindLink(txt, "http://");
		    txt = _wFindLink(txt, "www.");
		    txt = _wFindEmail(txt, "@");
		
		obj.innerHTML = txt;

	}	
	
	
	function _wArrayToString(array,divider)
	{
   	    var outString = "";
   	    if(array&&array.length)
   	        for(var i = 0; i < array.length; i++)
   	            outString += array[i].id + (i<array.length-1?divider:"");
   	            
   	    return outString;
	}	
	
	  function _wAddBannerInfo()
     {
         wAdvBannerText = wBannerText+":::"+wBannerUrl;
         wAdvBannerContact = wBannerMail+" :::"+wBannerPhone+":::"+wBannerAddress;
         
     }
     
function checkEmail(value)
{
     return value.replace(/[0-9a-z_\-^.]+@[0-9a-z_\-^.]+.[a-z]{2,3}[,\s]*/gi, '') == '';
}

function checkUrl(value)
{
  var template = /^(?:(?:https?|http|ftp):\/\/(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|org|mil|edu|arpa|ru|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:\/[a-z0-9.,_@%&?+=\~\/-]*)?(?:#[^ \'\"&<>]*)?$/i;
  var regex = new RegExp (template);
  return (regex.test(value) ? 1 : 0);
}


function greenBg() {

aBg = document.getElementsByTagName('a')

			
				for(var i=0;i<aBg.length;i++){
					if(aBg[i].className == 'pBg'){
					aBg[i].style.background = '';
					aBg[i].style.textDecoration = 'underline';
					aBg[i].style.color = '#0155d2';
				}
				}
				this.style.background = '#d3e091';
				this.style.textDecoration = 'none';
				this.style.color = '#3e3f3e';
			
}
			
			
function trimLeft(str) 
{
  return str.replace(/^\s+/, '');
}

function trimRight(str) 
{
  return str.replace(/\s+$/, '');
}

function trim(str) 
{
  return trimRight(trimLeft(str));
}
			
			
function fullOrderDetails()
{
    this.country = '';
    this.domain = '';
    this.country = '';
    this.url = '';
    this.shows = 0;
    this.bantype = 0;
    this.placement = 0;
    
    this.ccomp = '';
    this.cname = '';
    this.cmail = '';
    this.cphone = '';
}
