/* common javsacript file */
// JavaScript Browser Sniffer
// Eric Krok, Andy King, Michel Plungjan Jan. 31, 2002
// see http://www.webreference.com/ for more information
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.

    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();
    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

	var is_opera = (agt.indexOf("opera") != -1);

	var is_mac = (agt.indexOf("mac")!=-1);
    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       if(is_mac) {
           var iePos = agt.indexOf('msie');
           is_minor = parseFloat(agt.substring(iePos+5,agt.indexOf(';',iePos)));
       }
       else is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       is_major = parseInt(is_minor);
    }

    var is_konq = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       is_konq  = true;
       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       is_major = parseInt(is_minor);
    }                                 

    var is_getElementById   = (document.getElementById) ? "true" : "false";
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false";
    var is_documentElement = (document.documentElement) ? "true" : "false";

    var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    var is_safari_win = ((agt.indexOf('safari')!=-1));
    var is_khtml  = (is_safari || is_konq);

    var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
	var is_ie4   = (is_ie && is_major == 4);
    var is_ie5   = (is_ie && is_major == 5);
	var is_ie5up = (is_ie && is_minor >= 5);
	var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
	var is_ie6   = (is_ie && is_major == 6);


/* PC-IE4 and Mac IE 5+ redirect */
	if (is_ie4 || (is_ie5up == true && is_mac == true)) {
/*		window.location="../fail/fail-browser.html";	*/
	}
	
	if (!is_mac && !is_safari_win) {
		document.write('<link rel="stylesheet" href="../css/windows-typography.css" type="text/css" media="screen" />');
	}

/* function to have multiple events within the onload event */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function clearText(input) {
	if (input.defaultValue == input.value) {
		input.value = "";
	}
}

function calcDays(departureDateObj, returnDateObj){
	var date1 = departureDateObj;
	var date2 = returnDateObj;
	var dayordays = 'days';

	date1 = date1.split("/");
	date2 = date2.split("/");

	var sDate = new Date(date1[1]+"/"+date1[0]+"/"+date1[2]);
	var eDate = new Date(date2[1]+"/"+date2[0]+"/"+date2[2]);
	var daysApart = Math.abs(Math.round((sDate-eDate)/86400000)) + 1;

	if (daysApart == 1) {
		dayordays = 'day';
	}
	
	if (daysApart > 120) {
		$('#date-total-message').text('Sorry!  This insurance only covers travellers for up to 120 days. Please reselect your dates or call 0800 808 808 for further details.');
	} else if ((daysApart < 120) || (daysApart == 120)) {
		$('#date-total-message').text('You are travelling for ' + daysApart + ' ' + dayordays + '.');
	}
}

/* --
	Custom jQuery functions
-- */		
function columnToggle(useCase) {
	if (useCase == 'individual') {
		$(".family-toggle").removeClass("active-toggle");
		$(".individual-toggle").addClass("active-toggle");
		$(".benefit-table tr td:nth-child(3), .benefit-table tr td:nth-child(5), .benefit-table tr th:nth-child(3), .benefit-table tr th:nth-child(5)").css({display:"none"});
		$(".benefit-table tr td:nth-child(2), .benefit-table tr td:nth-child(4), .benefit-table tr th:nth-child(2), .benefit-table tr th:nth-child(4)").css({display:tableFormat});
	} else {
		$(".family-toggle").addClass("active-toggle");
		$(".individual-toggle").removeClass("active-toggle");
		$(".benefit-table tr td:nth-child(3), .benefit-table tr td:nth-child(5), .benefit-table tr th:nth-child(3), .benefit-table tr th:nth-child(5)").css({display:tableFormat});
		$(".benefit-table tr td:nth-child(2), .benefit-table tr td:nth-child(4), .benefit-table tr th:nth-child(2), .benefit-table tr th:nth-child(4)").css({display:"none"});
	}
}

function createToggleLinks() {
	$(".benefit-div").append("<a href=\"javascript:;\" class=\"toggle individual-toggle\" onclick=\"columnToggle('individual');\"><span>Individual</span></a> <a href=\"javascript:;\" class=\"toggle family-toggle\" onclick=\"columnToggle('family');\"><span>Family</span></a>");
}

function updateLinks() {
	var linkArray = $('.thickbox'), i;
	
	for (i=0; i < linkArray.length; i++) {
		linkPath = linkArray[i] + "?TB_iframe=true&height=340&width=680";
		$(linkArray[i]).attr('href',linkPath);
	}
}

var faqQArray = new Array();
var faqAArray = new Array();

function coverToggle(obj) {
	$('.benefit-list .current').removeClass('current');
	var questionNumber = '';
	$('.benefit-item').css({display:'none'});
		
	if (obj == null) {
		$(faqQArray[0]).addClass('current');
		$(faqAArray[0]).css({display:'block'});
	} else {
		for (i=0; i < faqQArray.length; i++) {
			if ($(faqAArray[i]).html() == $('#' + obj).html()) {
				questionNumber = i;
			}
		}
		$(faqQArray[questionNumber]).addClass('current');
		$('#' + obj).css({display:'block'});
	}
}



/* --
	XML Parsing
-- */
var jXML = {
    getCount: function(xml,nodes) {
        var response = {};
        for (var node in nodes) {
            response[node] = $(nodes[node],xml).length;
        }
        return response;
    },
    getAttribute: function(xml,nodes) {
        var response = {};
        for (var node in nodes) {
            if (nodes[node][2] == null) {
                response[node] = $(nodes[node][0] + "[" + nodes[node][1] + "]",xml);
            } else {
                if ($(nodes[node][0],xml).attr(nodes[node][1]) == nodes[node][2]) {
                    response[node] = $(nodes[node][0],xml);
                }
            }
        }
        return response;
    },
    getRandomObj: function(xml,nodes) {
        var response = {};
        for (var node in nodes) {
            var a = [];
            var b = [];
            $(nodes[node][0],xml).each(function(i) {
                b[i] = this;
            });
            var c = b.length;
            if (nodes[node][1] != null && nodes[node][1] < c) {
                c = nodes[node][1];
            }
            for (i = 0; i < c; i++) {
                var e = Math.floor(Math.random() * b.length);
                a[i] = b[e];
                b.splice(e,1);
            }
            response[node] = a;
        }
        return response;
    }
};
