if (typeof(WV) == 'undefined') WV = {};

//window.onerror = function(msg, url, num) {
//    $('body').after('<!-- ' + msg + ' -->');
//};

WV.Page = function () {
};

WV.Page.prototype = {
    register_listeners : function () {
        var email_form = $("#emailSubmit");
        if (email_form.length > 0) {
            var fh = new WV.Form.Email().init(this.client_messaging);
            fh.addTarget(this.mail_target);
            var vt = this.validation_type;
            email_form.click(function () { fh.process(vt); });
            fh.addElement('', 'brand', 'alpha-num-symbol', false, 0, 200);
            fh.addElement('Your Name', 'sender_name', 'alpha-num-symbol', true, 1, 128);
            fh.addElement('Your Email Address', 'sender_email', 'email', true, 1, 255);
            fh.addElement('Message', 'sender_message', 'alpha-num-symbol', true, 1, 255);
        }
        
        var sms_form = $("#smsSubmit");
        if (sms_form.length > 0) {
            var sms_fh = new WV.Form.SMS().init(this.client_messaging);
            sms_fh.addTarget(this.sms_target);
            var vt = this.validation_type;
            sms_form.click(function () { sms_fh.process(vt); });
            sms_fh.addElement('', 'sms_brand', 'alpha-num-symbol', false, 0, 200);
            sms_fh.addElement('Your Name', 'sms_sender_name', 'alpha-num-symbol', true, 1, this.sms_max_name_length);
            sms_fh.addElement('Phone Area Code', 'sms_sender_phone_area', 'num', true, 3, 3);
            sms_fh.addElement('Your Phone Number', 'sms_sender_phone_prefix', 'num', true, 3, 3);
            sms_fh.addElement('Your Phone Number', 'sms_sender_phone_suffix', 'num', true, 4, 4);
            sms_fh.addElement('Message', 'sms_sender_message', 'alpha-num-symbol', true, 1, this.sms_max_message_length);

            $('#sms_sender_name').maxlength({maxCharacters : this.sms_max_name_length, slider : true});
            $('#sms_sender_message').maxlength({maxCharacters : this.sms_max_message_length, slider : true});
        }

        if (typeof(WV.customFormInit) !== 'undefined') {
            var cust_form = $('#cform_submit_button');
            var c_form = new WV.Form.Custom().init(this.client_messaging);
            c_form.addTarget(this.mail_target);
            c_form.addBrand(this.brand_name);
            var vt = this.validation_type;
            cust_form.click(function() { c_form.process(vt); });
            WV.customFormInit(c_form);
        }

	var sf_form = $("#salesforceSubmit");
        if (sf_form.length > 0) {
           sf_form.click(function () { 
           var sfFormData = new Object();
	   sfFormData['fname'] = $("#fname").val();
	   sfFormData['lname'] = $("#lname").val();
	   sfFormData['business_name'] = $("#business_name").val();
	   sfFormData['email'] = $("#email").val();
	   sfFormData['phone'] = $("#phone").val();
		
	   if(sfFormData['fname'].length > 0 && sfFormData['lname'].length > 0 &&
	      sfFormData['business_name'].length > 0 && sfFormData['email'].length > 0 &&
              sfFormData['phone'].length > 0) { 
              $(document).trigger("#form_submit_event", [{ 'event_name' : 'FormSubmit',
                                              'data' : sfFormData}]);
             }
	  });
	}		
	
        $('.urlButton').click(function () {
            $(document).trigger('#click_submit_event', [
                    { 'event_name' : 'Click',
                      'data' : { 'url' : $(this).attr('href')} }]);
        });
        $('#printTabButton').click(function () {
            $(document).trigger('#print_specials_event', [{ 'event_name' : 'SpecialsPrint'}]);
        });
        $('.printButton').click(function () {
            if (typeof(ts) != "undefined" && $("#tab_map").length) {
              ts.show('tab_map');
              setTimeout("WV.page.delay_print()", 1000);
            } else {
              $(document).trigger('#print_event', [{ 'event_name' : 'PagePrint'}]);
              window.print();
            }
        });
        var obj = this;
        $('.bookmarkButton').click(function () {
            $(document).trigger('#bookmark_event', [{'event_name' : 'Bookmark'}]);
            obj.bookmark();
        });
        $('#directionsTo').click(function () {
            $(document).trigger('#directions_to_event', 
                [{'event_name' : 'DirectionsTo',
                  'data' : { 'url' : $(this).attr('href')}}]);
        });
        $('#directionsFrom').click(function () {
            $(document).trigger('#directions_from_event', 
                [{'event_name' : 'DirectionsFrom',
                  'data' : { 'url' : $(this).attr('href') } }]);
        });
        $('#mapView').click(function () {
            $(document).trigger('#map_event', [{'event_name' : 'MapView'}]);
        });

    },
    delay_print: function() {
        if( map_is_rendered) {
          $('.printButton').unbind();
          $('.printButton').click(function () {
              $(document).trigger('#print_event', [{ 'event_name' : 'PagePrint'}]);
              window.print();
          });
          $('.printButton').click();
        } else {
          setTimeout("WV.page.delay_print()", 1000);
        }
    },
    init : function (params) {
        this.instance_id = params.instance_id;
        this.image_path = params.image_path;
        this.campaign_id = params.campaign_id;
        this.sms_max_name_length = params.sms_max_name_length;
        this.sms_max_message_length = params.sms_max_message_length;
        this.mail_target = params.mail_target;
        this.sms_target = params.sms_target;
        this.validation_type = params.validation_type;
        this.client_messaging = params.client_messaging;
        this.brand_name = params.brand_name;

        if (typeof(WV.Tracker) != 'undefined') {
            var tracker = new WV.Tracker(
                {debug : false,
                 trackingHost : params.tracking_host,
                 instanceId : this.instance_id,
                // XXX get or ignore
                 partnerCode : 'undefined',
                 source : 'LP',
                 campaignId : this.campaign_id,
                 providerId : 'undefined',
                 events : ['#sms_submit_event',
                           '#directions_to_event',
                           '#directions_from_event',
                           '#email_submit_event',
                           '#form_submit_event',
                           '#page_load_event',
                           '#click_submit_event',
                           '#print_specials_event',
                           '#map_event',
                           '#video_view_event',
                           '#bookmark_event',
                           '#print_event']});
        } else {
            if (window.console && window.console.log) {
              console.log('NO TRACKING');
            }
        }
        this.register_listeners();
        if ($('#play_video')) {
            $('#removeModalVideoOverlay').click(function () {
                tb_remove();
            });
        }
        var obj = this;
        $('#printSpecialsButton').click(function() {
            $(document).trigger('#print_specials_event', [{ 'event_name' : 'SpecialsPrint'}]);
            obj.printSpecials();
        });

        //$(document).trigger('#page_load_event', [
        //    { 'event_name' : 'PageLoad',
        //      'data'       : { 'url' : location.href }}]);
    },
    bookmark : function (url, title) {
        if (typeof url == "undefined")   url = location.href;
        if (typeof title == "undefined") title = document.title;

        if (window.sidebar && window.sidebar.addPanel) {
            window.sidebar.addPanel(title, url, "");
        } else if (window.opera && window.print) {
            var element = document.createElement('a');
            element.setAttribute('href', url);
            element.setAttribute('title', title);
            element.setAttribute('rel', 'sidebar');
            element.click();
        } else if (document.all) {
            window.external.AddFavorite(url, title);
        }
    },
    printSpecials: function() {
        var content = $('#specialsContent').html();
        var html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Print Specials</title><link rel="stylesheet" type="text/css" href="/renderer/pages/shared/css/application_content.css" media="screen,projector,print" /><script>function printTab() { window.print();}</script></head><body onload="printTab();"><a href="javascript:void(0);" onclick="printTab();">Print</a><hr />' + content + '</body></html>';
        var newWindow = window.open('', 'print', 'width=600,height=600,resizable=yes,scrollbars=yes');
        newWindow.document.write(html);
        newWindow.document.close();
        return false;
    }
};



