/* © mik */
function Elem(id)
{
    return document.getElementById(id);
}

function getFormCheckedBoxesCount(formId, checkboxName)
{
    var form = Elem(formId);
    var ret = 0;
    
    for (var i=0; i<form.length; i++)
    {
        if (form.elements[i].type == 'checkbox' && form.elements[i].name == checkboxName)
        {
            if (form.elements[i].checked) ret++;
        }
    }
    
    return ret;
}

function getFormCheckedRadioButton(formId, radioName)
{
    var form = Elem(formId);
    
    for (var i=0; i<form.length; i++)
    {
        if (form.elements[i].type == 'radio' && form.elements[i].name == radioName)
        {
            if (form.elements[i].checked) return form.elements[i].value;
        }
    }
    
    return null;
}
/**/


var dom = (document.getElementById) ? true : false;
var moz = (dom && (navigator.appName=="Netscape")) ? true : false;

// Mozilla
function moveHintsN(e)
{
	xoff = window.pageXOffset + e.clientX + 10;
	document.getElementById('hints').style.left = xoff + "px";
	document.getElementById('hints').style.top = window.pageYOffset + e.clientY + 10 + "px";
	document.getElementById('hints').style.visibility = "visible";
}

function hideHintsN(e)
{
	document.onmousemove = null;
	document.onmouseout = null;
    document.getElementById('hints').style.visibility = "hidden";
}

// IE
function moveHints()
{
	if (moz) return;
    xoff = 0;
    yoff = 0;
	xoff += window.event.clientX + document.documentElement.scrollLeft + 10;
	yoff += window.event.clientY + document.documentElement.scrollTop + 10;
	document.getElementById('hints').style.left = xoff;
	document.getElementById('hints').style.top = yoff;
}

function hideHints()
{
	if (moz) return;
	document.getElementById('hints').style.visibility = "hidden";
}

function showHints(text)
{
	if (text == "") return;
	document.getElementById('hints').innerHTML = text;

	if (moz)
    { // for Mozilla
		document.onmousemove = moveHintsN;
		document.onmouseout = hideHintsN;
		return;
	}
    else
    { // for IE & Opera
		moveHints();
		document.getElementById('hints').style.visibility = "visible";
    }
}


//******************************************************************************

function initRollovers()
{
 if (!document.getElementById) return

 var aPreLoad = new Array();
 var sTempSrc;
 var aImages = document.getElementsByTagName('img');

 for (var i = 0; i < aImages.length; i++)
 {
  if (aImages[i].className == 'imgover')
  {
   var src = aImages[i].getAttribute('src');
   var ftype = src.substring(src.lastIndexOf('.'), src.length);
   var hsrc = src.replace(ftype, '_o'+ftype);

   aImages[i].setAttribute('hsrc', hsrc);

   aPreLoad[i] = new Image();
   aPreLoad[i].src = hsrc;

   aImages[i].onmouseover = function()
   {
    sTempSrc = this.getAttribute('src');
    this.setAttribute('src', this.getAttribute('hsrc'));
   }

   aImages[i].onmouseout = function()
   {
    if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_o'+ftype, ftype);
    this.setAttribute('src', sTempSrc);
   }
  }
 }
}

//******************************************************************************

var demoWin;
function DoWin(namehtm,wwin,hwin) {
  if ((demoWin != null) && (!demoWin.closed)){demoWin.close()}
  eval("demoWin=window.open('"+namehtm+"', 'demonstrationWin', 'width="+wwin+",height="+hwin+",location=0,top=0')");
  demoWin.focus();
}

//******************************************************************************

var demoWin2;
function DoWin2(wwin,hwin,imgnum) {
  if ((demoWin2 != null) && (!demoWin2.closed)){demoWin2.close()}
      eval("demoWin2=window.open('', 'demonstrationWin', 'width="+wwin+",height="+hwin+",location=0,top=0')");
  demoWin2.document.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"');
  demoWin2.document.writeln('    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
  demoWin2.document.writeln('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">');
  demoWin2.document.writeln('<head>');
  demoWin2.document.writeln('  <title></title>');
  demoWin2.document.writeln('  <style type="text/css">');
  demoWin2.document.writeln('  /*<![CDATA[*/');
  demoWin2.document.writeln('    body  {margin: 0px; padding: 0px}');
  demoWin2.document.writeln('    img   {display: block; margin: 0px auto; padding: 0px; border: none}');
  demoWin2.document.writeln('  /*]]>*/');
  demoWin2.document.writeln('  </style>');
  demoWin2.document.writeln('</head>');
  demoWin2.document.writeln('<body>');
  demoWin2.document.writeln("  <a href=\"#\" onclick=\"self.close(); return false;\" title=\"Кликните для закрытия\"><img src=\"imgs/naruj-reklm/"+imgnum+".jpg\" alt=\"\" /></a>'");
  demoWin2.document.writeln('</body>');
  demoWin2.document.writeln('</html>');
  demoWin2.document.close()
  demoWin2.focus();
}

//******************************************************************************

function check_mail(mail_address)
{
  ParsePetrn = /[a-z_0-9\.]+[-]*[a-z_0-9\.]*[@][a-z_0-9\.]+[-]*[a-z_0-9\.]+[.]\w+[.]\w+|[a-z_0-9\.]+[-]*[a-z_0-9\.]*[@][a-z_0-9\.]+[-]*[a-z_0-9\.]+[.]\w+/i
  return ParsePetrn.test(mail_address);
}

function validForm(f)
{
  if (f.email.value == ""){
    alert("Please, enter your E-mail");
    f.email.focus();
    return false;
  }
  else if (!check_mail(f.email.value))
  {
    alert("Please, enter valid E-mail address");
    f.email.focus();
    return false;
  }

  else f.submit(); // Отправляем на сервер
}

//******************************************************************************

function hide_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('showed', '');
        node.className += ' hidden';
    }
}

function show_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('hidden', '');
        node.className += ' showed';
    }
}

function toggle_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        if (node.className.indexOf('hidden') != -1)
            node.className=node.className.replace('hidden', 'showed')
        else if (node.className.indexOf('showed') != -1)
            node.className=node.className.replace('showed', 'hidden')
        else node.className += ' showed';
     }
}

/*************************************************************************/


/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function nice()
{
	var forms = getElementsByClassName("flashcardform", "form", document.getElementById("content"));

    for (var k=0; k<forms.length; k++)
    {
    	var checks = forms[k].getElementsByTagName('label');
    	var checksLnt = checks.length;

    	for(var i=0; i<checksLnt; i++)
    	{
    		var curr = checks[i];

    		var box = curr.firstChild;
    			box.className = 'lost';

    		curr.className += box.type;
    		curr.className += (box.checked) ? '-on' : '-off';

    		box.onclick = function()
    		{
    			var label = this.parentNode;

    			if(this.type == 'checkbox')
    			{
    				label.className = (label.className.indexOf('-on')+1) ? label.className.replace('-on','-off') : label.className.replace('-off','-on');
    			}

    			if(this.type == 'radio')
    			{
    				var siblings = label.parentNode.parentNode.getElementsByTagName('input');
    				var siblingsLnt = siblings.length;

    				for(var j=0; j<siblingsLnt; j++)
    				{
    					if(siblings[j].name == this.name) {
    						var check = siblings[j].parentNode;
    						check.className = check.className.replace('-on','-off');
    					}
    				}

    				label.className = label.className.replace('-off','-on');
    			}
    		}
    	}

    }
}

//////////////// show promo


// by mik
function _hide(prefix)
{
    var n = 1;
    while (document.getElementById(prefix+n.toString()) != null)
    {
        document.getElementById(prefix+n.toString()).style.display='none';
        n++;
    }
}

function _hideRange(prefix, fromId, toId)
{
    var n = fromId;
    while (n <= toId && document.getElementById(prefix+n.toString()) != null)
    {

        document.getElementById(prefix+n.toString()).style.display='none';
        n++;
    }
}

function showSlider(prefix, showId, hideFromId, hideToId)
{
    _hideRange(prefix, hideFromId, hideToId);
    document.getElementById(prefix+showId).style.display='block';
}
//

function show_promo(nodeId)
{
    _hideRange('promo_info_', 1, 5);
    //document.getElementById('promo_info_1').style.display='none';
    //document.getElementById('promo_info_2').style.display='none';
    //document.getElementById('promo_info_3').style.display='none';
    //document.getElementById('promo_info_4').style.display='none';
    //document.getElementById('promo_info_5').style.display='none';


    document.getElementById('promo_info_'+nodeId).style.display='block';
}
function show_promo2(nodeId)
{
    _hideRange('promo_info_', 6, 10);
    //document.getElementById('promo_info_6').style.display='none';
    //document.getElementById('promo_info_7').style.display='none';
    //document.getElementById('promo_info_8').style.display='none';
    //document.getElementById('promo_info_9').style.display='none';
    //document.getElementById('promo_info_10').style.display='none';

    document.getElementById('promo_info_'+nodeId).style.display='block';
}

function show_promo3(nodeId)
{
    _hideRange('promo_info_', 11, 15);

    document.getElementById('promo_info_'+nodeId).style.display='block';
}
function show_promo4(nodeId)
{
    _hideRange('promo_info_', 16, 19);

    document.getElementById('promo_info_'+nodeId).style.display='block';
}

function show_dest(nodeId)
{
    _hide('dest_ill_');
    //document.getElementById('dest_ill_1').style.display='none';
    //document.getElementById('dest_ill_2').style.display='none';
    //document.getElementById('dest_ill_3').style.display='none';
    //document.getElementById('dest_ill_4').style.display='none';

    document.getElementById('dest_ill_'+nodeId).style.display='block';
}

function set_default_font()
{
    var ebody = document.getElementsByTagName('body')[0];

    ebody.style.fontSize = '1em';
    ebody.className = ebody.className.replace("bigger", "");
    ebody.className = ebody.className.replace("large", "");
}

function set_font(size)
{
    var ebody = document.getElementsByTagName('body')[0];
    switch(size)
    {
      case 'normal':
        set_default_font();
        break;
      case 'bigger':
        set_default_font();
        ebody.style.fontSize = '1.1em';
        ebody.className += " bigger";
        break;
      case 'large':
        set_default_font();
        ebody.style.fontSize = '1.21em';
        ebody.className += " large";
        break;
    }
}

function showHint() {
    document.getElementById('hint').style.display='block';
}
function hideHint() {
    document.getElementById('hint').style.display='none';
}  doSelection

function doSelection() {
    if (document.getElementById('your_selection').className == "expande")
    {
        document.getElementById('your_selection').className ="";
    }
    else
    {
      document.getElementById('your_selection').className += "expande"
    }


}

function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}


   var map;
    var geocoder;
    function initialize() {
      map = new GMap2(document.getElementById("destination_map"));
      map.setCenter(new GLatLng(34, 0), 15);
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      geocoder = new GClientGeocoder();
      showLocation();
    }
    function addAddressToMap(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        divMap = document.getElementById("destination_map");
        divMap.innerHTML = '<strong>Maps & Directions for this location is currently unavailable.</strong>';
        //divMap.style.display = 'none';
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(place.address );
      }
    }
    function showLocation() {
      if (address != "") geocoder.getLocations(address, addAddressToMap);
      else
      {
        var m = new GLatLng(addressLat, addressLng);
        map.setCenter(m, 15);
        map.addOverlay(new GMarker(m));
      }
    }

// Show more info hot deals
function show_info(el) {
alert(el.parent.className);
//el.parent.style.display='none';
//el.style.display="none"; 3.
//return false;

}


function _ShowMore(nodeId) {
   document.getElementById('d_block_'+nodeId).className += " expande";
   }


/* book together */
/* © mik <andrew@ideus.biz> */
function _ShowElement(id, visible)
{
    var elem = document.getElementById(id);
    if (elem != null)
    {
        if (visible) elem.style.display = 'block';
        else elem.style.display = 'none';
    }
}

function _SelectQuoteTypeFields(type)
{
    Elem('trip_sec').action = 'https://www.professionalgolftravel.com/order-destination.aspx';
    
    _ShowElement('txt_destination', true);
    _ShowElement('txt_ar_date', true);
    _ShowElement('txt_dep_date', true);
    _ShowElement('txt_guests2', false);
    _ShowElement('txt_pick_up_date', false);
    _ShowElement('txt_pick_up_time', false);
    _ShowElement('txt_drop_off_date', false);
    _ShowElement('txt_drop_off_time', false);
    _ShowElement('txt_carnum', false);

    if (type == 'golf_car' || type == 'golf')
    {
        _ShowElement('txt_golfers', true);
        _ShowElement('txt_guests', false);
        _ShowElement('txt_rounds', true);
        _ShowElement('txt_rooms', false);        
    }
    else
    if (type == 'lodging')
    {
        _ShowElement('txt_golfers', false);
        _ShowElement('txt_guests', false);
        _ShowElement('txt_guests2', true);
        _ShowElement('txt_rounds', false);
        _ShowElement('txt_rooms', true);
    }
    else
    if (type == 'car')
    {
        _ShowElement('txt_ar_date', false);
        _ShowElement('txt_dep_date', false);
        _ShowElement('txt_golfers', false);
        _ShowElement('txt_guests', false);
        _ShowElement('txt_rounds', false);
        _ShowElement('txt_rooms', false);
        _ShowElement('txt_pick_up_date', true);
        _ShowElement('txt_pick_up_time', true);
        _ShowElement('txt_drop_off_date', true);
        _ShowElement('txt_drop_off_time', true);
        _ShowElement('txt_carnum', true);
    }
    else
    if (type == 'flight')
    {
        _ShowElement('txt_destination', false);
        _ShowElement('txt_ar_date', false);
        _ShowElement('txt_dep_date', false);
        _ShowElement('txt_golfers', false);
        _ShowElement('txt_guests', false);
        _ShowElement('txt_rounds', false);
        _ShowElement('txt_rooms', false);
        Elem('trip_sec').action = 'http://www.res99.com/nexres/air/advanced_search.cgi?src=10023120';
    }
    else
    {
        _ShowElement('txt_golfers', true);
        _ShowElement('txt_guests', true);
        _ShowElement('txt_rounds', true);
        _ShowElement('txt_rooms', true);
    }
}

function _CheckQuoteForm(form)
{
    var ret = '';
    
    var type = getFormCheckedRadioButton(form.id, 'propos');
    if (type != null)
    {
        if (type != 'flight')
        {
            if (form.s_destination.selectedIndex < 1) ret += 'Please select Destination!\n';
            
            if (type == 'car')
            {
                if (form.s_pick_up_date.value == '' || form.s_pick_up_date.value == 'mm/dd/yyyy') ret += 'Please select Pick-up Date!\n';
                //if (form.s_pick_up_time.selectedIndex < 1) ret += 'Please select Pick-up Time!\n';
                if (form.s_drop_off_date.value == '' || form.s_drop_off_date.value == 'mm/dd/yyyy') ret += 'Please select Drop-off Date!\n';
                //if (form.s_drop_off_time.selectedIndex < 1) ret += 'Please select Drop-off Time!\n';
                if (form.s_carnum.selectedIndex < 1) ret += 'Please select # of Cars!\n';
            }
            else
            {
                if (form.s_ar_date.value == '' || form.s_ar_date.value == 'mm/dd/yyyy') ret += 'Please select Arrival Date!\n';
                if (form.s_dep_date.value == '' || form.s_dep_date.value == 'mm/dd/yyyy') ret += 'Please select Departure Date!\n';
            }
            
            if (type.indexOf('golf') > -1)
            {
                if (form.s_golfers.selectedIndex < 1) ret += 'Please select # of Golfers!\n';
                if (form.s_rounds.selectedIndex < 1) ret += 'Please select # of Rounds!\n';
                if (type.indexOf('lodging') > -1)
                {
                    //if (form.s_guests.selectedIndex < 1) ret += 'Please select # of Non-Golfers!\n';
                }
            }
            if (type.indexOf('lodging') > -1)
            {
                if (form.s_rooms.selectedIndex < 1) ret += 'Please select # of Rooms!\n';
            }
            if (type == 'lodging')
            {
                if (form.s_guests2.selectedIndex < 1) ret += 'Please select # of Guests!\n';
            }
        }
        else
        {
            form.target = '_blank';
        }
    }
    else ret += 'Please select Quote Type!\n';
    
    if (ret != '') alert(ret);
    
    return ret == '';
}



function validFormAffiliate(f)
{
  var err="";
  if (f.last_name.value == ""){
    err = err + "<li>Last Name</li>";
  }
  if (f.first_name.value == ""){
    err = err + "<li>First Name</li>";
  }

  if (f.address.value == ""){
    err = err + "<li>Address</li>";
  }
  if (f.city.value == ""){
    err = err + "<li>City</li>";
  }
  if (f.state.value == ""){
    err = err + "<li>State/Province:</li>";
  }

  if (f.zip.value == ""){
    err = err + "<li>ZIP/Postal Code:</li>";
  }

  if (f.country.value == ""){
    err = err + "<li>Country</li>";
  }
  if (f.phone1.value == ""){
    err = err + "<li>Phone1</li>";
  }

  if ((f.email.value == "") || (!check_mail(f.email.value))){
    err = err + "<li>valid E-mail address</li>";
  }
  if (f.age.value == ""){
    err = err + "<li>Age</li>";
  }
  if (f.right_h.checked || f.left_h.checked){
    var i = 1;
  }
  else {
  	err = err + "<li>Select either left or right handed box</li>";
  }
  if (f.by_phone.checked || f.by_email.checked || f.by_mail.checked){
    var i = 2;
  }
  else {
  	err = err + "<li>How would you like to be contacted </li>";
  }

  if (err.length > 0) {
    err = "<h3>Please enter:</h3><ul>" + err + "</ul>";
    document.getElementById('fill_form').innerHTML=err;
    document.getElementById('fill_form').style.display="block";
    return false;
  }
  else f.submit();
}



function setPrintCSS(isPrint) {
// By Akella cssing.org.ua
  if (document.getElementsByTagName)
      x = document.getElementsByTagName('link');
  else
  {
      alert('Sorry this script is not working in your browser');
      return;
  }

  for (var i=0;i<x.length;i++) {
      if(x[i].title == 'printview'){x[i].disabled = !isPrint;}
      if(x[i].title == 'screenview'){x[i].disabled = isPrint;}
  }
}


function popupPrintVersion()
{
    var s = document.location.toString();
    window.open(document.location+(s.indexOf('?')>-1 ? '&':'?')+'version=print', 'popup', 'width=922,height=800,location=0,top=0,resizable=yes,scrollbars=yes');
}


/* feedback popup*/
function DoFeedback() {
eval("demoWin=window.open('//www.professionalgolftravel.com/feedback.aspx', 'demonstrationWin', 'width=680,height=655,location=0,top=0, scrollbars=yes ,status=1 ,resizable=1')");
	demoWin.focus();
}

/* *********************************
        ON LOAD
********************************* */
window.onload = function(){
	if (document.getElementById("photo_gallery")) {lightgallery.init();}
     if (document.getElementById("destination_map")){initialize();}
}

window.unload = function() {
if (document.getElementById("destination_map")){GUnload();}
}


