﻿Sys.Application.add_init(function()
{
    initTooltip();
    attachToValidators();
    wireTopMenus();
});

function wireTopMenus() {
    var submenus = $q ('body.ie6 ul.submenu');

    for (var i = 0; i < submenus.length; i++) {
        var x = submenus[i];
        $addHandler(x.parentNode, "mouseover", function () {x.style.display = 'block'; });
        $addHandler(x.parentNode, "mouseout", function () {x.style.display = 'none'; });
    }
        
}

function attachToValidators()
{
    var submits = NS.UI.getElementsByClassName("cValidate", '');
    for (var i = 0; i < submits.length; i++)
    {
        $addHandler(submits[i], "click", showValidateError);
    }
    
    var username = $get('LoginUserName');
    if (username) {
        var password = $get ('LoginPassword');
        var btn = $get('LoginButton');
        $addHandler(username, "blur", Function.createDelegate(username, validateUsername));
        $addHandler(password, "blur", Function.createDelegate(password, validatePassword));
        $addHandler(btn, "click", Function.createDelegate(btn, loginClick));
    }
}
function validateUsername (e) {
    var username = $get('LoginUserName');
    var form = $get('loginForm');
    if (username.value.trim() == '')
       Sys.UI.DomElement.addCssClass(form, 'invalidUsername'); 
    else
       Sys.UI.DomElement.removeCssClass(form, 'invalidUsername'); 
}

function validatePassword (e) {
    var form = $get('loginForm');
    var password = $get ('LoginPassword');
    if (password.value.trim() == '')
       Sys.UI.DomElement.addCssClass(form, 'invalidPassword'); 
    else
       Sys.UI.DomElement.removeCssClass(form, 'invalidPassword'); 
}

function loginClick(e) {
    validateUsername();
    validatePassword();
    var form = $get('loginForm');
    if (form.className.indexOf('invalid') > 0)
        e.preventDefault();
}

function showValidateError(ev)
{
  var classes = this.getAttribute('class') || this.getAttribute('className') || '';  
  var r = true;
  if (classes.indexOf('validationGroup') < 0)
      r = Page_ClientValidate ();
  else {
    var startIndex = 0;
    while ((startIndex = classes.indexOf('validationGroup', startIndex)) >= 0) {
        startIndex += 15;
        var endIndex = classes.indexOf(' ', startIndex);
        if (endIndex < 0)
            endIndex = classes.length;
        var grp = classes.substring(startIndex, endIndex);
        r = r && Page_ClientValidate (grp);
    }
  }
    
  if (!r)
  {
    ev.preventDefault();
    var summeries = $q(".cValidationSummery");
    for (var i = 0; i < summeries.length; i++)
    {
        if (summeries[i].innerHTML != '' && summeries[i].style.display != 'none') {
            $('<div>' + summeries[i].innerHTML + '</div>').dialog({ modal: true, title: 'Error', buttons: {
				Ok: function() {
					$( this ).dialog( "close" );
				}
              } 
			});
            break;
        }
     }
  }

}
function initTooltip()
{
    //initialize tooltips
    var tooltips = $q('.showHint');
    for (var i = 0; i < tooltips.length; i++)
    {
        var hintData = $q('.hintData', tooltips[i], true);
        var tooltip = $create(NS.UI.Tooltip, {'content':hintData.innerHTML}, null, null, tooltips[i]);
        tooltip._tipDiv.className = tooltip._tipDiv.className + ' ' + hintData.className.replace('hintData', '');
        $create(NS.UI.TooltipBehavior.Hover, null, null, null, tooltips[i]);
    }
}

function printETickets(){
    var hide = NS.UI.getElementsByClassName("hideForETicketPrint", '');
    for (var i = 0; i < hide.length; i++)
        Sys.UI.DomElement.addCssClass(hide[i], "hidePrint");
    if ($get('etickets'))    
        Sys.UI.DomElement.removeCssClass($get('etickets'), "hidePrint");
    window.print();
}

function printConfirmation(){
    if ($get('etickets') != null)
        Sys.UI.DomElement.addCssClass($get('etickets'), "hidePrint");
    var hide = NS.UI.getElementsByClassName("hideForETicketPrint", '');
    for (var i = 0; i < hide.length; i++)
        Sys.UI.DomElement.removeCssClass(hide[i], "hidePrint");

    window.print();
}

function printAll(){
    if ($get('etickets') != null)
        Sys.UI.DomElement.removeCssClass($get('etickets'), "hidePrint");
    var hide = NS.UI.getElementsByClassName("hideForETicketPrint", '');
    for (var i = 0; i < hide.length; i++)
        Sys.UI.DomElement.removeCssClass(hide[i], "hidePrint");

    window.print();
}

function closeDemo() {
    $q('.initPopup', null, true).style.display = 'none';
    return false;
}

//google analytics
var _gaq = _gaq || [];
if (typeof (GoogleAnalyticsId) != 'undefined') {
    _gaq.push(['_setAccount', GoogleAnalyticsId]);
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

    $(document).ready(function() {
        $('[data-ga]').click(function(e) {
            var gatext = $(e.target).closest('[data-ga]').attr('data-gatext');
            if (!gatext) {
                gatext = typeof (GoogleAnalyticsLabels) == 'undefined' ? '' : GoogleAnalyticsLabels;
            }
            _gaq.push(['_trackEvent', $(e.target).closest('[data-ga]').attr('data-ga'), 'Click', gatext, typeof (GoogleAnalyticsValues) == 'undefined' ? 0 : parseInt(GoogleAnalyticsValues)]);
        });
    });
}

//jquery ui
$(document).ready(function() {
    $('.cDatePicker').datepicker();
    $('.ui-state-default').hover(function() { $(this).addClass('ui-state-hover'); }, function() { $(this).removeClass('ui-state-hover'); }).click(function() { $(this).addClass('.ui-state-active'); });
    $(".initPopup button").click(function(){
        $(".initPopup").hide();
        return false;
    });
});
