
function doSubmit(action, args)
{

    // append action
    var newAction = false;
    var oAction = document.forms[0].submitAction;
    if (oAction == null)
    {
        oAction = document.createElement("INPUT"); 
        newAction = true;
    }
    oAction.type = 'hidden';
    oAction.name = 'submitAction';
    oAction.value = action;
    
    if (newAction == true)
    {
        document.forms[0].appendChild(oAction);
    }

    
    // append arguments
    var newArgs = false;
    var oArgs = document.forms[0].submitArgs;
    if (oArgs == null)
    {
        oArgs = document.createElement("INPUT");
        newArgs = true;
    }
    oArgs.type = 'hidden';
    oArgs.id = 'submitArgs';
    oArgs.name = 'submitArgs';
    oArgs.value = args;
    

    
    if (newArgs == true)
    {
        document.forms[0].appendChild(oArgs);
    }
    
    if (wysiwygCtrls != undefined)
    {
        commitWysiwygs();
    }
    
    // remove default values if they exist
    $$('.pwgInputFields .inputTextField').each(
        function(el)
        { 
            var defValue = el.getProperty("defaultvalue");
            if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
            {
                defValue = el.attributes['defaultvalue'].nodeValue ;
            }
            
            if (defValue != null && el.value == defValue)
            {
                 el.value = "";
            }
         });
         
    $$('.pwgInputFields .inputTextAreaField').each(
        function(el)
        { 
            var defValue = el.getProperty("defaultvalue");
            if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
            {
                defValue = el.attributes['defaultvalue'].nodeValue ;
            }
            
            if (defValue != null && el.value == defValue)
            {
                 el.value = "";
            }
         });
         
    
    
    // submit form
    document.forms[0].submit();
}

function PostBackParent()
{
    if (window.parent != null)
    {
        window.parent.doSubmit('Refresh', '');
    }
}

function RefreshParent()
{
    if (window.parent != null)
    {
        window.parent.doSubmit('Refresh', '');
    }
}

 function ClosePopup()
    {
        parent.TB_remove();
    }


function RedirectPage(newLoc)
{
    window.location.href = newLoc;
}


function RedirectParent(newLoc)
{
    if (window.parent != null)
    {
        window.parent.focus();
        window.parent.location.href = newLoc;
    }
}

function resize()
{  
	var frame = document.getElementById("frmWebsite");

    var windowHeight=0;
    if (typeof(window.innerHeight)=='number') {
          windowHeight=window.innerHeight;
    } else {
                   
       if (document.documentElement && document.documentElement.clientHeight) {
            windowHeight= document.documentElement.clientHeight;
       } else {
            if (document.body && document.body.clientHeight) {
              windowHeight=document.body.clientHeight;
             }
       }
    }
    
    if(frame != null)
    {
	   frame.style.height = windowHeight - 95 - 3 + "px";
	}
} 


function ImageLoadFailed(img, imgPath) { img.src = imgPath; }


function popupLoaded()
{
    // IE ONLY
    if (wysiwygLoaded == false) setupWysiwygs();
    if (wysiwygLoaded == false) setupWysiwygsAdvanced();
    
    bindValidators();
    if (calendarsLoaded == false) bindDateCalendars();
    
    
}




function pageNotify(x)
{
    $('pageNotifyArea').setStyle('top',  window.getScrollTop() + 'px');
    window.addEvent('scroll', 
        function()
        {
	        scrollAmount = Window.getScrollTop();
		    $('pageNotifyArea').setStyle('top',  scrollAmount  + 'px');
	    }
	);
	   
				
    $('pageNotifyArea').innerHTML = x;
    $('pageNotifyArea').setStyle('display','block');
    
    (function(){ $('pageNotifyArea').setStyle('display','none'); }).delay(5000);
   
}


function redirectToCart(args, resp)
{
    // store current return page.
    ajaxDoHtmlRequest('/handlers/shoppingcart.ashx?action=storeReferrer', null, null, null);
    
    
    if( resp.Response.IsCartOrder != null && resp.Response.IsCartOrder == "True")
    {
        // go to the shopping cart
        window.location.href = '/cart/';
    }
    else
    {
        // go to the RSVP page
        window.location.href = '/rsvp/';
    }
    

}

function RedirectPage(newPage)
{
    window.location.href  = newPage;
}

var pageContentModified = false;
function pageContentModified()
{
    pageContentModified = true;
}	
	
		
/*********************************************/
/***********     Start Search Bar ***********/
/*********************************************/		
window.addEvent('domready', setupSearchBar);
function setupSearchBar()
{
    if ($('txtkeywordsearch') != null)
    {
        $('txtkeywordsearch').addEvent('click', function() { this.value = ''; });
        $('txtkeywordsearch').addEvent('blur', function() { if(this.value == '') this.value = 'enter keyword to search by'; });
        $('txtkeywordsearch').addEvent('keyenter', function(e) {  e.stop();  redirectSearch(); });
    }
}

Element.Events.keyenter = {
	base: 'keyup',
	condition: function(e){
		return e.key=='enter';
	}
};

function redirectSearch()
{
    document.aspnetForm.action = "/search.aspx";
    document.forms[0].__VIEWSTATE.value = ''
    document.forms[0].__VIEWSTATE.name = 'NOVALIDATION'
    document.aspnetForm.submit();
}	
	
/*********************************************/
/***********     End Search Bar ***********/
/*********************************************/		
	

/*********************************************/
/***********     Start Promo Widget ***********/
/*********************************************/		
window.addEvent('domready', setupPromoWidget);
function setupPromoWidget()
{
    if ($$('.promoBox').length > 0)
    {
        var sampleObjectItems = [];
        
        $$('.promoBox').each(
            function(elem) 
            {
                var pos = elem.getProperty('promoPosition');
                sampleObjectItems.push({promo: pos});  
            } 
        );
        

	    if ($('mainPromoBox').getNext() != null)
	    {
	        var info6 = $('mainPromoBox').getNext().set('opacity',0.5);
    	   
	        var nS6 = new noobSlide(
	        {
	            mode: 'vertical',
	            box: $('mainPromoBox'),
	            items: sampleObjectItems,
	            size: 203,
	            handles: $$('#thumbnails div.thumb'),
	            handle_event: 'mouseenter',
	            button_event: 'click',
	            fxOptions: 
	            {
	                duration: 1000,
	                transition: Fx.Transitions.Back.easeOut,
	                wait: false
	            },
	            onWalk: function(currentItem,currentHandle)
	            {
	                this.handles.set('opacity',0.6);
	                currentHandle.set('opacity',1);
	            }
	        });

	        var defPromo = Math.floor(Math.random() * sampleObjectItems.length) + 1;
	        var i = 1;
	        while (defPromo > i)
	        {
	            nS6.next();
	            i++;
	        }
	    }
	}
}


/*********************************************/
/***********     End Promo Widget ***********/
/*********************************************/		
	
/*********************************************/
/***********     Start RSS Widget ***********/
/*********************************************/		
	
window.addEvent('domready', goGetRss);
function goGetRss()
{
    if ($('pwgRssBlog'))
    {
        var rssUrl = $('pwgRssBlog').getProperty('rssUrl');
	    ajaxDoHtmlRequest('/handlers/rssbloghandler.ashx?rss=' + rssUrl, 'rss', onGetRss, null);
	}
}

function onGetRss()
{
	// $('pwgRssBlog').setStyle('height', $('pwgArticleList').getStyle('height'));
}

/*********************************************/
/***********     End RSS Widget ***********/
/*********************************************/		

/*********************************************/
/***********     WYSYWIG ***********/
/*********************************************/		
			
var wysiwygLoaded = false;
window.addEvent('domready', setupWysiwygs);
window.addEvent('domready', setupWysiwygsAdvanced);
function setupWysiwygs()
{
    if ($$('div.wysiwygControl').length > 0)
    {
        wysiwygLoaded = true;
        $$('div.wysiwygControl').each(function(element){bindWysiwyg(element)});
    }
    
}
function setupWysiwygsAdvanced()
{
    if ($$('div.wysiwygControlAdv').length > 0)
    {
        wysiwygLoaded = true;
        $$('div.wysiwygControlAdv').each(function(element){bindWysiwygAdv(element)});
    }
    
}

var wysiwygCtrls = new Array();
function bindWysiwyg(el)
{

     var W2 = new wysiwyg({
        textarea: $(el.id).getElement('textarea'),
        buttons: ['strong','em','u',null,'h2','h3',null,'ul','ol','link'],
        src: '/scripts/mootools/wysiwyg.html'
    }); 
    
    // add the ctrl to the array
    wysiwygCtrls[wysiwygCtrls.length] = W2;
	
    $('btnSave').addEvent('click', commitWysiwygs);
    
}


function bindWysiwygAdv(el)
{
     var W2 = new wysiwyg({
        textarea: $(el.id).getElement('textarea'),
        src: '/scripts/mootools/wysiwyg.html'
    }); 
    
    var imgs = $('wysiwygImgs');
    

    var onUploadImage = function(response){
	    var	image = 'img/'+response;
	    new Element('input',{'type':'file','name':'file'}).replaces(form.getElement('input'));

	    new Element('img',{'src':image}).addEvent('click',W2.exec.bind(W2,['img',image])).injectTop(imgs);
	    imgs.scrollTo(0,0);

	    W2.exec('img',image);
    };
    
    // add the ctrl to the array
    wysiwygCtrls[wysiwygCtrls.length] = W2;
	
    $('btnSave').addEvent('click', commitWysiwygs);
}


function commitWysiwygs()
{
    for (i = 0; i < wysiwygCtrls.length; i++)
    {
        var W2 = wysiwygCtrls[i];
        if(W2.open)
        { 
            W2.toTextarea(); 
            W2.TA.value = escape(W2.TA.value);
        } 
    }
}


function GetCustomLinkPopup()
{
    TB_show('Add a custom PWG link', "#TB_inline?height=300&width=300&inlineId=customPwgLinks", false);
}

function SetCustomLinkSelection(url, name)
{
    for (i = 0; i < wysiwygCtrls.length; i++)
    {
        var W2 = wysiwygCtrls[i];
        if(W2.open)
        { 
            W2.customLinkCallBackFunction(url, name);
        } 
    }
    
    TB_remove();
}

/*********************************************/
/***********     END WYSIWYG ***********/
/*********************************************/		


/*********************************************/
/***********     CONTROL VALIDATIOR   ***********/
/*********************************************/

var validatorsLoaded = false;
window.addEvent('domready', bindValidators);
function bindValidators()
{
    $$('.numeric').each(function(el){el.onkeyup=numericOnly});
    $$('.money').each(function(el){el.onkeyup=moneyOnly});
    $$('.phonenumber').each(function(el){el.onkeyup=phonenumberOnly});
    $$('.charLimit').each(function(el){el.onkeyup=charLimit});
    $$('.charLimit').each(function(el){el.onpaste=charLimit});
    validatorsLoaded = true;
}

var calendarsLoaded = false;
window.addEvent('domready', bindDateCalendars);
function bindDateCalendars()
{
    if ($$('.dateCalendar').length > 0)
    {
        calendarsLoaded = true;
        
        $$('.dateCalendar').each(
            function(el)
            { 
                var elid = el.id;
                var scr = "x = new Calendar({" + elid + ": 'd M Y'}, {classes: ['dashboard'], direction: 0,  navigation: 2, tweak: {x: 3, y: -3} });"
                eval(scr);
            }
        );
    }
    

}

var numericString = "0123456789";
function numericOnly(event)
{
    var w = "";
    for (i=0; i < this.value.length; i++) {
        x = this.value.charAt(i);
        if (numericString.indexOf(x,0) != -1)
        w += x;
    }
    this.value = w;
}

var moneyString = "0123456789.";
function moneyOnly(event)
{
    var w = "";
    for (i=0; i < this.value.length; i++) {
        x = this.value.charAt(i);
        if (moneyString.indexOf(x,0) != -1)
        w += x;
    }
    this.value = w;
}

var phonenumberString = "0123456789-() ";
function phonenumberOnly(event)
{
    var w = "";
    for (i=0; i < this.value.length; i++) {
        x = this.value.charAt(i);
        if (phonenumberString.indexOf(x,0) != -1)
        w += x;
    }
    this.value = w;
}


function charLimit(event)
{
    var maxLength = parseInt(this.getAttribute('maxLength'));
    
    if (this.value.length > maxLength)
    {
       this.value = this.value.substring(0, maxLength);
    }
    
    $(this.id + '_limit').innerHTML = maxLength - this.value.length;
}


/*********************************************/
/***********     END CONTROL VALIDATORS   ***********/
/*********************************************/





/*********************************************/
/***********     RATINGS   ***********/
/*********************************************/
function ResetRingRating(rankParam)
{
    var currentRating = parseInt($('tmprnk'+rankParam).value);
    var lockedRating = parseInt($('rnk'+rankParam).value) ;
    if (currentRating != lockedRating)
    {
        SetRingRating(lockedRating, rankParam, false);
    }
   
}

function SetRingRating(rank, rankParam, doLock) {
    var ext = "png";
    if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
    {
     ext = "png";
    }
    
    $$('.ratingStar_'+rankParam).each(
        function (el) 
        {
            el.src = '/images/icons/staroff.' + ext;
        }
    );
    
   

    if (doLock)
    {
        var lockedRating = parseInt($('rnk'+rankParam).value) ;
        if (rank == lockedRating) rank = rank - 1;
        
        if (!isNaN(rank))
        {
            $('rnk'+rankParam).value = rank;
        }
        
        updateOverallRating();
    }
    
    $('tmprnk'+rankParam).value = rank;
    
    switch (rank)
    {
        case 5:
            $('rank5_'+rankParam).src = '/images/icons/star.' + ext;
        case 4:
            $('rank4_'+rankParam).src = '/images/icons/star.' + ext;
        case 3:
            $('rank3_'+rankParam).src = '/images/icons/star.' + ext;
        case 2:
            $('rank2_'+rankParam).src = '/images/icons/star.' + ext;
        case 1:
            $('rank1_'+rankParam).src = '/images/icons/star.' + ext;
            break;
    }
    
  
   
}


window.addEvent('domready', updateOverallRating);
function updateOverallRating()
{
    if($$('.overallRating .pwgStars .pwgStarsMask') != undefined && $$('.overallRating .pwgStars .pwgStarsMask').length == 1)
    {
         var starsMask = $$('.overallRating .pwgStars .pwgStarsMask')[0];
         var starsOff = $$('.overallRating .pwgStars .pwgStarsMask .pwgStarsOff')[0];
     
        var totalScore = 25;
        
        totalScore =  parseInt($('rnkQualityOfService').value) 
                    + parseInt($('rnkResponsiveness').value) 
                    + parseInt($('rnkProfessionalism').value) 
                    + parseInt($('rnkCostValue').value) 
                    + parseInt($('rnkFlexibility').value);
        
        
        var percentage = ((100 * totalScore) / 25);
        
        starsMask.style.left = percentage + '%';
        starsOff.style.left = "-" + percentage + '%';
        
        if ($('overallRatingScore') != null)
        {
            $('overallRatingScore').innerHTML = "(" + (totalScore / 5).toFixed(1) + " / 5.0)";
        }
    }
}


window.addEvent('domready', ToggleRatingBreakdown);
function ToggleRatingBreakdown()
{

    if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
    {
        $$('div.starsWithBreakdown').each(
            function(elem)
            {
                elem.addEvents({
                     'mouseover' : function()
                     {
                           elem.getElement('div.pwgStarBreakdown').style.display = 'block';
                     },
                     'mouseout' : function()
                     {
                           elem.getElement('div.pwgStarBreakdown').style.display = 'none';
                     }
                });
               
            }
        );
    }
}


function SetRatingValue(divElement, rating)
{
    $(divElement).style.left = rating + '%';
    $(divElement+"Rings").style.marginLeft = "-" + rating + '%';
    if (rating == 0)
    {
        $(divElement+"_RingRating").style.display = 'none';
    }
    else
    {
        $(divElement+"_RingRating").style.display = 'block';
    }
    
}

/*********************************************/
/***********     END RATINGS   ***********/
/*********************************************/

/*********************************************/
/***********     GOOGLE MAPS   ***********/
/*********************************************/


var cpoint;
var cmarker;
var map;

function loadMaps()
{
    var latitude  = $('gmapLat').value;
	var longitude = $('gmapLong').value;
	var accuracy = $('gmapAcc').value;
	
	var accuracyToZoomLevel = new Array(0,2,4,7,8,9,13,14,14,14);
	
	map = new google.maps.Map2(document.getElementById("map"));
	cpoint = new google.maps.LatLng(latitude, longitude);
    cmarker = new GMarker(cpoint);
    
    map.setCenter(cpoint, accuracyToZoomLevel[accuracy]);
    map.addOverlay(cmarker);
    map.addControl(new GSmallZoomControl());
}

function getMapDirections(departureInput) 
{
    var geocoder = new GClientGeocoder();
    var dpoint;
    var directionsDiv = $('mapDirection');
    
    geocoder.getLatLng(departureInput, 
        function(point) {
          if (!point) {
              alert(departureInput + " not found");
              dpoint = null;
          }
          else 
          {
              dpoint = point;
              if (dpoint) 
              {
	              directionsDiv.style.display = 'block';
	              var gdir = new GDirections(map, directionsDiv);
	              var arrLocation = new Array(2);
	              arrLocation[0] = dpoint;
	              arrLocation[1] = cpoint;
	              gdir.loadFromWaypoints(arrLocation);
              }
            }
        }
    );
}

function showDirections()
{
    $('googleMapsDirections').style.visibility = 'visible';

    var mySlide = new Fx.Slide('googleMapsDirections', { duration: 1500} );
    mySlide.hide();
    mySlide.wrapper.setStyle('overflow', 'visible');
    mySlide.wrapper.setStyle('left', '0');
    mySlide.slideIn('vertical');
}
function showMap()
{
    var mySlide = new Fx.Slide('googleMapsDirections',{duration: 1500});

    if ($('googleMapsDirections').style.visibility == 'visible')
    {
        $('googleMapsDirections').style.visibility = 'hidden'
    }
}

/*********************************************/
/***********     END GOOGLE MAPS   ***********/
/*********************************************/


/*********************************************/
/***********     AJAX   ***********/
/*********************************************/

function ajaxDoRequest(handlerUrl, resultsElementId)
{
    var xmlHttp;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
      // Internet Explorer
          try
          {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e)
          {
                try
                {
                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                  alert("Your browser does not support AJAX!");
                  return false;
                }
           }
      }
      
      xmlHttp.onreadystatechange=function()
      {
        if(xmlHttp.readyState==4)
          {
             document.getElementById(resultsElementId).value = xmlHttp.responseText;
          }
      }     
      
      
      xmlHttp.open("GET", handlerUrl, true);
      xmlHttp.send(null);
}


function ajaxDoJSONRequest(handlerUrl, onComplete, elemToUpdate)
{
    var xmlHttp;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
      // Internet Explorer
          try
          {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e)
          {
                try
                {
                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                  alert("Your browser does not support AJAX!");
                  return false;
                }
           }
      }
      
      xmlHttp.onreadystatechange=function()
      {
        if(xmlHttp.readyState==4)
          {
             onComplete(xmlHttp.responseText, elemToUpdate);
          }
      }     
      
      
      xmlHttp.open("GET", handlerUrl, true);
      xmlHttp.send(null);
}


function ajaxDoHtmlRequest(handlerUrl, resultsElementId, onCompleteHandler, args)
{
    var xmlHttp;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
      // Internet Explorer
      try
      {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
            try
            {
              xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
              alert("Your browser does not support AJAX!");
              return false;
            }
       }
    }
     
  xmlHttp.onreadystatechange=function()
  {
    if(xmlHttp.readyState==4)
    {
        var hasFailed = false;
        if (resultsElementId != null)
        {
            if (xmlHttp.responseText.substr(0,1) == '{')
            {
                // this is a json response
                var resp = eval('(' + xmlHttp.responseText + ')');
                document.getElementById(resultsElementId).innerHTML = unescape(resp.Response.HTML);
                
                if (resp.Response.FailureMessage != undefined)
                {
                    pageNotify(resp.Response.FailureMessage);
                    hasFailed = true;
                }
                if (resp.Response.SuccessMessage != undefined)
                {
                    pageNotify(resp.Response.SuccessMessage);
                    hasFailed = false;
                }
            }
            else
            {   // this is an html response
                document.getElementById(resultsElementId).innerHTML = xmlHttp.responseText;
            }
        }
        if (hasFailed == false && onCompleteHandler != null)
        {
            if (args != null)
            {
                onCompleteHandler(args);
            }
            else if (resp != null)
            {
                // should this in case you need access to the return response object
                onCompleteHandler(args, resp);
            }
            else
            {
                onCompleteHandler();
            }
        }
    }
  }     
      
  handlerUrl = handlerUrl.replace(/&amp;/g, "&");
  xmlHttp.open("GET", handlerUrl, true);
  xmlHttp.send(null);
  return false;
   
}



/*********************************************/
/***********     END AJAX   ***********/
/*********************************************/





/*********************************************/
/***********     DROP DOWN MENUS   ***********/
/*********************************************/


window.addEvent('domready', bindDropDownMenu);
function bindDropDownMenu()
{

    if ($('pwgCategory') != null)
    {
	    $('pwgCategory').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    
		    if ($(list) != null)
		    {
		        $(list).setStyle('display','block');
		        var catMenuLabel = elem.getElement('div.label');
		        var catMenuArrow = elem.getElement('div.menuArrow');


                if (elem.getElement('ul.drop_down_active') != null)
		        {
		             var myFx = new Fx.Slide(list).show();
		             catMenuArrow.addEvents({
		                
			             'click' : function(){
				            myFx.cancel();
				            myFx.toggle();
				            if (myFx.open)
				            {
				                elem.getElement('div.menuArrow').className = 'menuArrow arrowClosed';
				            }
				            else
				            {
				                elem.getElement('div.menuArrow').className = 'menuArrow arrowOpen';
				            }
			            }
			        });
		        }
		        else
		        {
		            var myFx = new Fx.Slide(list).hide();
    		    
		            catMenuArrow.addEvents({
		           
			            'click' : function(){
				            myFx.cancel();
				            myFx.toggle();
				            if (myFx.open)
				            {
				                elem.getElement('div.menuArrow').className = 'menuArrow arrowClosed';
				            }
				            else
				            {
				                elem.getElement('div.menuArrow').className = 'menuArrow arrowOpen';
				            }
			            }
			            
		            });
		        }
		    }
	    })
	}
	
	
	if ($('pwgSort') != null)
    {
	    $('pwgSort').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    
		    if ($(list) != null)
		    {
		        $(list).setStyle('display','block');
		        var catMenuLabel = elem.getElement('div.label');
		        var catMenuArrow = elem.getElement('div.menuArrow');


                if (elem.getElement('ul.drop_down_active') != null)
		        {
		             var myFx = new Fx.Slide(list).show();
		        }
		    }
	    })
	}
	if ($('pwgFilter') != null)
    {
	    $('pwgFilter').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    
		    if ($(list) != null)
		    {
		        $(list).setStyle('display','block');
		        var catMenuLabel = elem.getElement('div.label');
		        var catMenuArrow = elem.getElement('div.menuArrow');


                if (elem.getElement('ul.drop_down_active') != null)
		        {
		             var myFx = new Fx.Slide(list).show();
		        }
		    }
	    })
	}
   
    if ($('pwgFilterBy') != null)
    {
	    $('pwgFilterBy').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    var myFx = new Fx.Slide(list).hide();
		    $(list).setStyle('display','block');

		        
		    elem.addEvents({
			    'mouseenter' : function(){
				    myFx.cancel();
				    myFx.slideIn();
			    },
			    'mouseleave' : function(){
				    myFx.cancel();
				    myFx.slideOut();
			    }
		    });
	    })
	}
	
	if ($('pwgSortBy') != null)
    {
	    $('pwgSortBy').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    var myFx = new Fx.Slide(list).hide();
		    $(list).setStyle('display','block');

		    elem.addEvents({
			    'mouseenter' : function(){
				    myFx.cancel();
				    myFx.slideIn();
			    },
			    'mouseleave' : function(){
				    myFx.cancel();
				    myFx.slideOut();
			    }
		    });
	    })
	}
	
	if ($('pwgFont') != null)
    {
	    $('pwgFont').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    var myFx = new Fx.Slide(list).hide();
		    $(list).setStyle('display','block');

		    elem.addEvents({
			    'mouseenter' : function(){
				    myFx.cancel();
				    myFx.slideIn();
			    },
			    'mouseleave' : function(){
				    myFx.cancel();
				    myFx.slideOut();
			    }
		    });
	    })
	}
	
	if ($('pwgBookmark') != null)
    {
	    $('pwgBookmark').getElements('li.menu').each( function( elem ){
		    var list = elem.getElement('ul.drop_down_links');
		    var myFx = new Fx.Slide(list).hide();
		    $(list).setStyle('display','block');

		    elem.addEvents({
			    'mouseenter' : function(){
				    myFx.cancel();
				    myFx.slideIn();
			    },
			    'mouseleave' : function(){
				    myFx.cancel();
				    myFx.slideOut();
			    }
		    });
	    })
	}
	
	
	if ($$('.pwgChecklistItems') != null)
    {
       $$('.pwgChecklistItems').each( function( task ){
            task.getElements('li.menu').each( function( elem ){
	            var list = elem.getElement('ul.drop_down_links');
	            var myFx = new Fx.Slide(list).hide();
	            $(list).setStyle('display','block');

	            elem.addEvents({
		            'mouseenter' : function(){
			            myFx.cancel();
			            myFx.slideIn();
		            },
		            'mouseleave' : function(){
			            myFx.cancel();
			            myFx.hide();
		            }
	            });
            })
        })
	}
	
}


/*********************************************/
/*********** END DROP DOWN MENUS   ***********/
/*********************************************/


/*********************************************/
/*********** FONTSIZER   ***********/
/*********************************************/

 function increaseFontSize() 
 {
  var className = getClassName();
  if ('small' == className) {
    d('content').className = 'normal';
  }
  else if ('normal' == className) {
    d('content').className = 'large';
  }
}
    
function decreaseFontSize() {
  var className = getClassName();
  if ('normal' == className) {
    d('content').className = 'small';
  }
  else if ('large' == className) {
    d('content').className = 'normal';
  }
}

function getClassName() {
  return d('content').className;
}

function d(id) {
  return document.getElementById(id);
}

/*********************************************/
/*********** END FONTSIZER   ***********/
/*********************************************/



/*********************************************/
/*********** USER ANALYTICS   ***********/
/*********************************************/
function AttachClickEvent(item)
{
    var xmlHttp;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
      // Internet Explorer
          try
          {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e)
          {
                try
                {
                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                  alert("Your browser does not support AJAX!");
                  return false;
                }
           }
      }
      
      xmlHttp.open("GET","/Handlers/UserAnalytics.ashx?aid="+item.getAttribute("aid")+"&type="+item.getAttribute("type"),true);
      xmlHttp.send(null);      
 }
 /*********************************************/
/*********** END USER ANALYTICS   ***********/
/*********************************************/



/*********************************************/
/*********** BRIDAL TICKER   ***********/
/*********************************************/
/*
window.addEvent('domready', setupBridalShowsWidget);
function setupBridalShowsWidget()
{
    if ($('pwgBridalShowsSummary'))
    {
        var marketId = $('pwgBridalShowsSummary').getProperty('marketID');
        var marketName = $('pwgBridalShowsSummary').getProperty('marketName');
        
        
        loadBridalShows(marketId, marketName);
    }
}


var Shows;
var _marketName;

function loadBridalShows(marketId, marketName)
{
    _marketName = marketName;
    
    if (marketId == null) marketId = 0;
    if (_marketName == null) _marketName = "";
    

    var xmlHttp;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
      // Internet Explorer
          try
          {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e)
          {
                try
                {
                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                  alert("Your browser does not support AJAX!");
                  return false;
                }
           }
      }
      
      xmlHttp.onreadystatechange=function()
      {
        if(xmlHttp.readyState==4)
        {            
             Shows = eval('(' + xmlHttp.responseText + ')');
             setShows();
             startScroll();
                   
        }
      }
      xmlHttp.open("GET","/handlers/bridalshowticker.ashx?marketId=" + marketId,true);
      xmlHttp.send(null);
}

function startScroll() 
{
   	initialiseList("bridalShow");
}

function setShows()
{
    var html = "";
    if (Shows.Shows != null)
    {
        var numShows = Shows.Shows.Show.length;
        if (numShows == undefined) numShows = 1;
        
        for(var i = 0; i < numShows; i++)
        {
            var show = 0;
            
            if (Shows.Shows.Show[i] != undefined)
            {
                show = Shows.Shows.Show[i];
            }
            else
            {
                show = Shows.Shows.Show;
            }
        
            var index = i + 1;
            var len = 0;
            var elip = "";
                             
            if (show.Title.length > 60)
            {
                len = 60
                elip = "...";
            }
            else
            {
                len =show.Title.length;
            }
            
            
            html += "<ul class='show' style='display: none'>"
			html += "<li class='showName'>"
			html += "	> <span id='bridalShowName'><a href='/events/" + show.SeoFolder + "/" + show.ShowId + "/'>" + show.ShowDateDisplay + "<br/>" + show.Type + "</a></span>"
			html += "</li>"
			html += "<li class='showDesc'>"
			html += "	<span id='bridalShowDesc'><a href='/events/" + show.SeoFolder + "/" + show.ShowId + "/'>" + show.Title.substring(0,len) + elip + "</a></span>"
			html += "</li>"
			html += "</ul>"
			
        }
    }
    else if (_marketName == '')
    {      
        for (var i=0; i<1; i++)
        {
            html += "<ul class='show'>"
			html += "<li class='showName'>"
			html += "	> <span id='bridalShowName'>" + "Bridal Shows" + "</span>"
			html += "</li>"
			html += "<li class='showDesc'>"
			html += "	<span id='bridalShowDesc'>" + "Bridal shows and wedding events are great for learning about the latest wedding trends. <br/><br/> Find a local show near you." + "</span>"
			html += "</li>"
			html += "</ul>"
        }
        
    }
    else
    {      
        for (var i=0; i<1; i++)
        {
            html += "<ul class='show'>"
			html += "<li class='showName'>"
			html += "	> <span id='bridalShowName'>" + "Bridal Shows" + "</span>"
			html += "</li>"
			html += "<li class='showDesc'>"
			html += "	<span id='bridalShowDesc'>" + "Check back for upcoming " + _marketName + " Bridal Shows and Webinars!" + "</span>"
			html += "</li>"
			html += "</ul>"
        }
        
    }
    
     document.getElementById("bridalShow").innerHTML += html;
}
*/

 /*********************************************/
/*********** END BRIDAL TICKER   ***********/
/*********************************************/


function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}


/*********************************************/
/*********** ICE EDIT ***********/
/*********************************************/


function iceEdit(obj){
    oSpan = document.getElementById(obj);
	oSpan.contentEditable  = true;
}


function iceDoFormat(command, elementid, args)
{
    var browser;
    browser = navigator.appName;
    
    var editElement = document.getElementById(elementid);
    var editRange = "";
    if (document.selection) 
    {
         editRange = document.selection.createRange();
    }
    else if (document.getSelection)
    {
         editRange = document.getSelection(); 
    }
    else
    {
       // no edit range...
    }
	
	
	
	if (command == "createlink")
	{
	    var url = prompt("Please enter the url");
	    if (url)
	    {
	        if (url.toLowerCase().indexOf("http://", 0) == -1)
	        {
	           url = "http://" + url;
	        }
	        document.execCommand('createlink', false, url.toLowerCase());
	    }
	}
	else{
	
	    if (browser == "Netscape")
	    {
	        // safari and firefox
	        // document.execCommand('usecss', false, true);
	        document.execCommand(command, false, args);
	    }
	    else if (browser == "Microsoft Internet Explorer")
	    {
	        document.execCommand(command, true, args);
	    }
	    else
	    {
	        document.execCommand(command, false, args);
	    }
    }
    
    return false;


}


window.addEvent('domready', bindPublishingControls);
function bindPublishingControls()
{
    if ($('btnPublishArticle') != null)
    {
        $('btnPublishArticle').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {'request':'publishArticle','postingid':$('btnPublishArticle').getAttribute('postingid')},
                    onComplete:
                        function(response)
                        { 
                           pageNotify(response);
                        }
                }
            ).send();
            
           return false;
        });
    }
    
    if ($('btnRemoveArticle') != null)
    {
        $('btnRemoveArticle').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {'request':'removeArticle','postingid':$('btnRemoveArticle').getAttribute('postingid')},
                    onComplete:
                        function(response)
                        { 
                           pageNotify(response);
                        }
                }
            ).send();
            
           return false;
        });
    }
        
    if ($('btnRevertArticle') != null)
    {
        $('btnRevertArticle').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {'request':'revertArticle','postingid':$('btnRevertArticle').getProperty('postingid')},
                    onComplete:
                        function(response)
                        { 
                           pageNotify(response);
                        }
                }
            ).send();
            
           return false;
        });
    }
    
    if ($('btnFeatureHome') != null)
    {
        $('btnFeatureHome').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {'request':'featureHome','postingid':$('btnFeatureHome').getProperty('postingid')},
                    onComplete:
                        function(response)
                        { 
                           pageNotify(response);
                        }
                }
            ).send();
            
           return false;
        });
    }
    
    if ($('btnFeatureCategory') != null)
    {
        $('btnFeatureCategory').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {'request':'featureCategory','postingid':$('btnFeatureCategory').getProperty('postingid')},
                    onComplete:
                        function(response)
                        { 
                           pageNotify(response);
                        }
                }
            ).send();
            
           return false;
        });
    }
    
    if ($('btnViewUnpublished') != null)
    {
        $('btnViewUnpublished').addEvent('click', 
        function(el)
        {
           var req = new Request(
                {
                    method: 'get',
                    url: '/handlers/articlehandler.ashx',
                    data: {
                        'request':'viewUnpublishedArticles',
                        'categoryid':$('btnViewUnpublished').getProperty('categoryid'),
                        'marketid':$('btnViewUnpublished').getProperty('marketid')
                        },
                    onComplete:
                        function(response)
                        { 
                          $('pwgWeddingIdeas').innerHTML = response;
                        }
                }
            ).send();
            
           return false;
        });
    }
    
  
}

/*********************************************/
/*********** END ICE EDIT ***********/
/*********************************************/




/*********************************************/
/*********** START PHOTO ALBUM AJAX ***********/
/*********************************************/
var multiSelect = false;
var editMode = false;
function getPhoto(catid, tagname, photoid,  elemToUpdate, ownerElem)
{
    scrollPos = $('SlideItMoo_inner').getProperty('scrollPos');
    currentSelection = photoid;
    if (multiSelect)
    {
        currentSelection = $('appendPhotos').value;
    }

    if (isNaN(scrollPos) || scrollPos == null) scrollPos = 0;

    var req = new Request(
            {
                method: 'get',
                url: '/handlers/photoalbumhandler.ashx',
                data: {
                    'catid':catid, 
                    'tagname':tagname, 
                    'photoid':currentSelection, 
                    'scrollPos':scrollPos, 
                    'isEdit':editMode
                    },
                onComplete:
                    function(response)
                    { 
                        var resp = eval('(' + response + ')');
                        
                        if (resp != undefined)
                        {
                            $(elemToUpdate).innerHTML = decodeURI(resp.Response.HTML); 
                            renderAlbum();
                            if (editMode == false && resp.Response.OmnitureProp1 != undefined)
                            { 
                                if(ownerElem != null && ownerElem.href != null )
                                {
                                    trackAjaxPageView(resp.Response.OmnitureProp1, ownerElem.href.replace('http://','') );
                                }else{
                                    trackAjaxPageView(resp.Response.OmnitureProp1, window.location.hostname + window.location.pathname, photoid);
                                }
                            }   
                        }
                        else
                        {
                            $(elemToUpdate).innerHTML = decodeURI(response); 
                            renderAlbum();
                        }
                    }
            }
        ).send();
}

function renderAlbum()
{
    InitialisePhotoSlide();
   (function(){new ImageZoom()  }).delay(1000);
    InitialiseFancyUpload();
    InitialisePhotoUploadAlbum();
    multiSelect = false;
}

function updatePhotoDetails()
{
    if ($('txtTitle') != null)
    {
        var photoId = $('appendPhotos').value;
        var title = $('txtTitle').value;
        var desc = $('txtDesc').value;
        var credit = $('txtCredit').value;
       
        var req = new Request(
            {
                method: 'get',
                url: '/handlers/photoalbumhandler.ashx',
                data: {'request':'updatePhotoDetails', 'photoid':photoId, 'title':title, 'desc':desc, 'credit':credit }
            }
        ).send();
    }
}

window.addEvent('domready', InitialisePhotoUploadAlbum);
function InitialisePhotoUploadAlbum()
{

    var tagName = "upload";
    
    var hrefParams = window.location.href.split('/');
    if (hrefParams[hrefParams.length - 2] == "edit")
    {
        tagName = hrefParams[hrefParams.length - 3];
    }
    

    var draggableOptions = {
        onStart:function()
        {
          this.el.setOpacity(.5);
        },
        onComplete:function()
        {
          // put the element back where it belongs
          this.el.setOpacity(1);
          this.el.style.left = 0;
          this.el.style.top = 0;
        }
    };

    if ($('btnClearSelection') != null)
    {
        $('btnClearSelection').addEvent('click', 
            function(el){ 
                $('appendPhotos').value = "0";
		        multiSelect = true;
		        editMode = true;
		        getPhoto($('btnClearSelection').getProperty('categoryid'), tagName, '0', 'pwgPhotoAlbumContainer'); 
		        return false;
	        }
	    );
	}
	
	
	if ($('btnDeletePhoto') != null)
    {
        $('btnDeletePhoto').addEvent('click', 
            function(el){ 
		        
                var photoId = $('appendPhotos').value;
		        var req = new Request(
                    {
                        method: 'get',
                        url: '/handlers/photoalbumhandler.ashx',
                        data: {'request':'deletePhotos', 'photoid':photoId },
                        onComplete: function (response) { 
            				editMode = true;
            		        getPhoto($('btnClearSelection').getProperty('categoryid'), tagName, '0', 'pwgPhotoAlbumContainer'); 
                        }
                    }
                 ).send();
                 
		        return false;
	        }
	    );
	}
	
	if ($('btnSelectAll') != null)
    {
        $('btnSelectAll').addEvent('click', 
            function(el)
            { 
		        
		        $$('.uploadThumb').each (function(el) {  $('appendPhotos').value += "," + el.getProperty("postingid")  } );
				multiSelect = true;
				editMode = true;
            	getPhoto($$('.uploadThumb')[0].getProperty('categoryid'), tagName, '0', 'pwgPhotoAlbumContainer'); 
		        return false;
	        }
	    );
	}
	if ($('btnSavePhotoGalleryUpdates') != null)
	{
	    $('btnSavePhotoGalleryUpdates').addEvent('click', 
	        function(el){
	            updatePhotoDetails();
            }
	    );
	}
	
	if ($('btnAssignCollection') != null)
	{
	    $('btnAssignCollection').addEvent('click', 
	        function(el){
	            updatePhotoDetails();
	            
                $('divCollectionOptions').setStyle('display', 'block');    
                $('TagGroups').setStyle('display', 'block');
                return false;
	        }
	    );
	    
	     $$('.btnCloseCollectionOptions').each(function(item){
	         item.addEvent('click', 
	            function(el){
    	            $$('.TagNames').each(function (el) { el.setStyle('display', 'none'); });
                    $('TagGroups').setStyle('display', 'block');
                    $('divCollectionOptions').setStyle('display', 'none');  
                    
                    multiSelect = true;
                    editMode = true;
            	    getPhoto($$('.uploadThumb')[0].getProperty('categoryid'), tagName, '0', 'pwgPhotoAlbumContainer'); 
  
                    return false;
	            }
	        );
	    });
	    
        $('btnCreateTags').addEvent('click',
            function(el)
            {
                var photoId = $('appendPhotos').value;
                var newCollection = $('txtNewCollection').value;
                var newTag = $('txtNewTagName').value;
                var catid = $$('.uploadThumb')[0].getProperty('categoryid');
                
                var req = new Request(
                    {
                        method: 'get',
                        url: '/handlers/photoalbumhandler.ashx',
                        data: {'request':'assignCollection', 'photoid':photoId, 'newCollection':newCollection, 'newTag':newTag, 'catid':catid },
                        onComplete: function (response) 
                            { 
                                multiSelect = true;
                                editMode = true;
            	                getPhoto($$('.uploadThumb')[0].getProperty('categoryid'), 'upload', '0', 'pwgPhotoAlbumContainer'); 
                            }
                    }
                 ).send();
            }
        );
	}
	
    $$('.chkTags').each(
        function(el)
        {
            el.addEvent('click',  
                 function(item) 
                 {
                     var tag = el.getProperty("tag");
                     var photoId = $('appendPhotos').value;
                    
                     if (el.checked)
                     {
                         var req = new Request(
                            {
                                method: 'get',
                                url: '/handlers/photoalbumhandler.ashx',
                                data: {'request':'assignCollection', 'photoid':photoId, 'tag':tag },
                                onComplete: function (response) { $('lbl_tag_' + tag).removeClass('FadedText'); }
                            }
                         ).send();
                     }
                     else
                     {
                         var req = new Request(
                            {
                                method: 'get',
                                url: '/handlers/photoalbumhandler.ashx',
                                data: {'request':'unassignCollection', 'photoid':photoId, 'tag':tag }
                            }
                         ).send();
                     }
	            }
	        );
	    }
    );
	
    
    
    newHeight = 100 / Math.ceil(Math.sqrt($$('.mainPhoto').length));
    $$('.mainPhoto').each(function(elem) 
        { 
            elem.setStyle('max-height', newHeight + '%'); 
            elem.setStyle('max-width',  newHeight + '%'); 
        });
				
	var dragitems = $$('.uploadThumb');
	var dropitems = $$('.leftPage');
    dragitems.each(
		function(item)
		{
			item.addEvent(
				'mousedown', 
				    function(e)
				    {
					    e = new Event(e).stop();
					    var clone = this.clone()
					    .setStyles(this.getCoordinates([$('SlideItMoo_items')])) // this returns an object with left/top/bottom/right, so its perfect
					    .setStyles({'opacity': 1.0, 'position': 'absolute', 'z-index': '9999999'})
					    .addClass('selected')
					    .addEvent('emptydrop', function() {
						    this.style.left = 0;
						    this.style.top = 0;
						    this.setOpacity(0);
					    }).inject(document.body);
    					
					    var drag = clone.makeDraggable({
						    'droppables': dropitems,
						    onComplete:function()
						    {
							    this.detach();
							    clone.dispose();
						    },
						    onDrop: function (el, over)
						    {
							    if (over)
							    {
								    $('appendPhotos').value += "," + el.getProperty('postingid');
								    multiSelect = true;
								    editMode = true;
								    getPhoto(el.getProperty('categoryid'), tagName, el.getProperty('postingid'), 'pwgPhotoAlbumContainer');
							    }
							    else
							    {
								    clone.dispose();
							    }
						    },
						    onEnter: function (el, over)
						    {
						    },
						    onLeave: function (el, over)
						    {
						    }
					    });
    					
					    drag.start(e); // start the event manual
				    }
			);
		}
	);
   
   
}

/* click - control event */
Element.Events.ctrlClick = {
	base: 'click',
	condition: function(event) {
		return event.control; // ctrl key?
	}
};



/*********************************************/
/*********** END PHOTO ALBUM AJAX ***********/
/*********************************************/



/*********************************************/
/*********** START AJAX TRACKING ***********/
/*********************************************/
var trackActionFired = false;
function trackActionExcl()
{
    if (!trackActionFired)
    {
        trackActionFired = true;
        trackAction();
    }
}

function trackAction()
{
    // tracks micro data
   /*var s = s_gi(s_account); 
   s.linkTrackVars = "prop1,prop34,events";
   s.events = "event20"
   s.linkTrackEvents = "event20";
   s.tl(this, 'o', 'Embedded Contact Vendor Form');*/
}

/*function trackAjaxPageView(p1)
{
   s.pageName = p1;
    s.prop1 = p1;
    
    void(s.t());
}*/

function trackAjaxPageView(p1, url, uid)
{
    if( url != null)
    {
        var id = uid != null ? uid + '/' : '';
        _gaq.push(['_trackPageview', url + id]);
    }

    //s.pageName = p1;
    //s.prop1 = p1;
    
    //void(s.t());
}
/*********************************************/
/*********** END   AJAX TRACKING ***********/
/*********************************************/



/*********************************************/
/*********** START FANCY UPLOAD ***********/
/*********************************************/
 window.addEvent('domready', InitialiseFancyUpload);
 function InitialiseFancyUpload()
 {
	var link = $('select-0');
	
	if (link != null)
	{
	    var linkIdle = link.get('html');
     
	    function linkUpdate()
	    {
		    if (!swf.uploading) return;
		    var size = Swiff.Uploader.formatUnit(swf.size, 'b');
		    link.set('html', '<span class="small">' + swf.percentLoaded + '% of ' + size + '</span>');
	    }
     
	    // Uploader instance
	    var swf = new Swiff.Uploader({
		    path: '/scripts/fancyupload/Swiff.Uploader.swf',
		    url: document.forms[0].action,
		    verbose: true,
		    queued: false,
		    multiple: true,
		    target: link,
		    instantStart: true,
		    typeFilter: {
			    'Images (*.jpg, *.jpeg, *.gif)': '*.jpg; *.jpeg; *.gif;'
		    },
		    fileSizeMax: 2 * 1024 * 1024,
		    onSelectSuccess: function(files) {
			    if (Browser.Platform.linux) alert('Warning: Due to a misbehaviour of Adobe Flash Player on Linux,\nthe browser will probably freeze during the upload process.\nSince you are prepared now, the upload will start right away ...');
			    this.setEnabled(false);
		    },
		    onSelectFail: function(files) {
			    alert( files[0].name + ' was not added!', 'Please select an image smaller than 2 Mb. (Error: #' + files[0].validationError + ')');
		    },
		    appendCookieData: true,
		    onQueue: linkUpdate,
		    onFileComplete: function(file) {
     
			    if (file.response.error) {
				    alert('Failed Uploading: ' + this.fileList[0].name + ', please try again.');
			    } else 
			    {
			        // upload completed.
			    }
     
			    file.remove();
			    this.setEnabled(true);
		    },
		    onComplete: function() {
			    link.set('html', linkIdle);
			    processUnprocessedPhotos();
		    }
	    });
    	
     
	    // Button state
	    link.addEvents({
		    click: function() {
			    return false;
		    },
		    mouseenter: function() {
			    this.addClass('hover');
			    swf.reposition();
		    },
		    mouseleave: function() {
			    this.removeClass('hover');
			    this.blur();
		    },
		    mousedown: function() {
			    this.focus();
		    }
	    });
	}
 
}

window.addEvent('domready', InitialiseQuickUpload);
 function InitialiseQuickUpload()
 {
 
    if ($('pressReleaseContent') != null)
    {
        $$('#pressReleaseContent a img').each(
            function(i)
            {
                if (i.getParent('a') != null && i.getParent('a').getProperty('rel') == 'smoothbox')
                {
                    i.getParent('a').addClass('smoothbox');
                    i.getParent('a').setProperty('rel', 'pressImages');
                }
            }
        );
        
        TB_init();
    }
 
 
	var link = $('btnQuickImageUpload');
	
	if (link != null)
	{
	    var linkIdle = link.get('html');
     
	    function linkUpdate()
	    {
		    if (!swf.uploading) return;
		    var size = Swiff.Uploader.formatUnit(swf.size, 'b');
		    link.set('html', '<span class="small">' + swf.percentLoaded + '% of ' + size + '</span>');
	    }
     
	    // Uploader instance
	    var swf = new Swiff.Uploader({
		    path: '/scripts/fancyupload/Swiff.Uploader.swf',
		    url: document.forms[0].action,
		    verbose: true,
		    queued: false,
		    multiple: true,
		    target: link,
		    instantStart: true,
		    typeFilter: {
			    'Images (*.jpg, *.jpeg, *.gif)': '*.jpg; *.jpeg; *.gif;'
		    },
		    fileSizeMax: 2 * 1024 * 1024,
		    onSelectSuccess: function(files) {
			    if (Browser.Platform.linux) alert('Warning: Due to a misbehaviour of Adobe Flash Player on Linux,\nthe browser will probably freeze during the upload process.\nSince you are prepared now, the upload will start right away ...');
			    this.setEnabled(false);
		    },
		    onSelectFail: function(files) {
			    alert( files[0].name + ' was not added!', 'Please select an image smaller than 2 Mb. (Error: #' + files[0].validationError + ')');
		    },
		    appendCookieData: true,
		    onQueue: linkUpdate,
		    onFileComplete: function(file) {
     
			    if (file.response.error) 
			    {
				    alert('Failed Uploading: ' + this.fileList[0].name + ', please try again.');
			    } 
			    else
			    {
		            for (i = 0; i < wysiwygCtrls.length; i++)
                    {
                        var W2 = wysiwygCtrls[i];
                        if(W2.open)
                        { 
                            W2.imageUploadCallbackFunction(file.response.text);
                        } 
                    }
			    }
     
			    file.remove();
			    this.setEnabled(true);
		    },
		    onComplete: function() 
		    {
			    link.set('html', linkIdle);
		    }
	    });
    	
     
	    // Button state
	    link.addEvents({
		    click: function() {
			    return false;
		    },
		    mouseenter: function() {
			    this.addClass('hover');
			    swf.reposition();
		    },
		    mouseleave: function() {
			    this.removeClass('hover');
			    this.blur();
		    },
		    mousedown: function() {
			    this.focus();
		    }
	    });
	}
 
}

// ajax call to process the newly uploaded photos
function processUnprocessedPhotos()
{
	$('select-0').set('html', '<span>...Processing</span>');
	
    var catid = $('hdnCategoryID').value;
     var req = new Request(
            {
                method: 'get',
                url: '/handlers/photoalbumhandler.ashx',
                data: {'request':'processUnprocessedPhotos', 'catid':catid },
                onComplete:function(response){  updateUnprocessedAlbum(catid); }
            }
        ).send();
        
       return false;
}

function updateUnprocessedAlbum(catid)
{
	$('select-0').set('html', '<span>Updating Album</span>');
     var req = new Request(
            {
                method: 'get',
                url: '/handlers/photoalbumhandler.ashx',
                data: {'request':'getUploadAlbum','catid':catid,'tagname':'upload'},
                onComplete:
                    function(response)
                    { 
                        $('pwgPhotoAlbumContainer').innerHTML = response; 
                        renderAlbum(); 
                    }
            }
        ).send();
        
       return false;
        
}





/*********************************************/
/*********** END FANCY UPLOAD ***********/
/*********************************************/



window.addEvent('domready', createShadowBox);
function createShadowBox()
{
    if (getInternetExplorerVersion() == -1 || getInternetExplorerVersion() > 7)
    {
        $$('.shadowBox').each(
            function (item)
            {
                var shadowBox = new Element('div', {'class': 'shadowBoxContainer'});
                var shadowBoxBottom = new Element('div', {'class': 'shadowBoxBottom'});
                var shadowBoxTop = new Element('div', {'class': 'shadowBoxTop'});
                var shadowBoxLeft = new Element('div', {'class': 'shadowBoxLeft'});
                var shadowBoxRight = new Element('div', {'class': 'shadowBoxRight'});
                
                var newItem = item.clone(true, true).cloneEvents(item, null);
               
                shadowBoxTop.injectInside(shadowBox);

                
                // define the left and right shadows standalone.
                shadowBoxRight.injectInside(shadowBoxLeft);
                shadowBoxLeft.injectInside(shadowBox);
                
                // define top and bottom shadows as nested.
                shadowBoxBottom.injectInside(shadowBox);
                
                
                newItem.injectInside(shadowBoxRight);
                
               
                
                // replace the standard div with the shadowed div.
                if (item.getParent('.shadowBoxContainer') == undefined)
                {
                    shadowBox.replaces(item);
                }
                // rebind any dateCalendar's;
                $$('button.dashboard').each(function(e){ e.style.display = 'none'; });
                bindDateCalendars();
                bindValidators();
                
                // rebind any smoothbox
                TB_init();
                
            }
        )
    }
    
}

window.addEvent('domready', overrideSelectBox);
function overrideSelectBox()
{
    
    $$('.mooPwgSelect').each(
        function (item)
        {
            var div = new Element('div', {'class':'pwgSelectBox'});
            if (item.hasClass('mooPwgSelectSmall')) div.addClass('pwgSelectBoxSmall');
            var ul = new Element ('ul');
            var hdnValue = new Element ('input', {'type':'hidden', 'name':item.name, 'id': item.id});
           
            var spanDisplayedValue = new Element('span');
            spanDisplayedValue.set('text', '');
            
            
            item.getElements('option').each(
                function(o)
                {
                    var value = o.getProperty('value');
                    var label = o.get('text');
                    
                    var li = new Element('li');
                    var a = new Element('a', {'href':value});
                    
                    a.set('text', label);
                    a.addEvent('click', 
                        function() 
                        { 
                            hdnValue.value = a.getProperty('href'); 
                            spanDisplayedValue.set('text', a.getProperty('text'));  
                            ul.removeClass('hover');
                            return false; 
                        } 
                    );
                    
                    li.addEvent('click', 
                        function() 
                        { 
                            hdnValue.value = a.getProperty('href'); 
                            spanDisplayedValue.set('text', a.getProperty('text'));  
                            ul.removeClass('hover');
                            return false; 
                        } 
                    );
                    
                    
                    a.injectInside(li);
                    li.injectInside(ul);  
                    
                    if (o.getProperty('selected'))
                    { 
                        spanDisplayedValue.set('text', label);
                        hdnValue.value = value;
                    }
                }
            );
            
            
            spanDisplayedValue.injectInside(div);
            ul.injectInside(div);
            
            div.addEvent('click', function(ev) { ev.stopPropagation(); ul.addClass('hover'); });
            window.addEvent('click', function() { ul.removeClass('hover'); } );

            hdnValue.injectInside(div);
            div.replaces(item);
        }
    )
}

window.addEvent('domready', setupVendorSearchNearField);
function setupVendorSearchNearField()
{
    var defaultText = 'City, State or Zip';
    
    $$('.vendorSearchGeo').each(
        function(el)
        {
            el.addEvent('focus', 
                function()
                { 
                    if (el.value.toUpperCase() == defaultText.toUpperCase())
                    {
                        el.value = '';
                    }
                }
            );
            
            el.addEvent('blur', 
                function()
                { 
                    if (el.value == '')
                    {
                        el.value = defaultText;
                    }
                }
            );
            
            if (el.value == '')
            {
                el.value = defaultText;
            }
        }
    );
}


/*********************************************/
/*********** START Promo Widget  ***********/
/*********************************************/

window.addEvent('domready', initPromoWdgt);
function initPromoWdgt()
{
    if ($('pwgPromotionsWidget') != null)
    {
        // initialise the shown promo
        $$('.promoGraphicImage').each(
            function (promoGraphic)
            {
                promoGraphic.fade('hide');
                
                if (promoGraphic.hasClass('active'))
                {
                    promoGraphic.fade('show');
                }
            }
        );
        
        // rotate promo based on timer.
        var promoTimer = FlipPromoNext.periodical(5000);

        $('pwgPromotionsWidget').addEvent('mouseenter', 
            function (ev) 
            { 
                ev.stopPropagation();
                $clear(promoTimer);
            } 
        );
                
        $('pwgPromotionsWidget').addEvent('mouseleave', 
            function (ev) 
            { 
                ev.stopPropagation();
                promoTimer = FlipPromoNext.periodical(5000);
            } 
        );
                      
        
        // hide/show promo's on mouse overs.
        $$('.promoThumbs ul li').each(
            function (promoTab)
            {
                promoTab.addEvent('mouseenter', 
                    function (ev) 
                    { 
                        ev.stopPropagation();
                        $clear(promoTimer);
                       
                        SetPromoFocus(promoTab);
                    } 
                );
                
                 promoTab.addEvent('click', 
                    function (ev) 
                    { 
                        ev.stopPropagation();
                        $clear(promoTimer);
                        
                        window.location.href = promoTab.getProperty('href');
                    } 
                );
            }
        );
        
       
    }
}

function FlipPromoNext()
{
    var nextPromoTab;

    $$('.promoThumbs ul li').each(
        function (promoTab)
        {
            if (promoTab.hasClass('active'))
            {
                nextPromoTab = promoTab.getNext();
            }
            
            if (nextPromoTab == promoTab.getLast('li'))
            {
                nextPromoTab = $$('.promoThumbs ul li')[0];
            }
        }
    );
            
   SetPromoFocus(nextPromoTab); 
}

function SetPromoFocus(promoTab)
{
    if (promoTab != null)
    {
        // which div is already active?
        var currentlyActiveDiv = null;

        // unselect other promos
        $$('.promoThumbs ul li').each(
            function(p)
            { 
                if (p.hasClass('active'))
                {
                    currentlyActiveDiv =  $('promoImg_' + p.id.replace('promoThumb_', ''));
                }
                p.removeClass('active'); 
            }
        );
        
        // set this promo tab as selected
        promoTab.addClass('active');
        var newActiveDiv =  $('promoImg_' + promoTab.id.replace('promoThumb_', ''));
        
        //fade the visible out and the hidden in.
        if (currentlyActiveDiv != null)
        {
            currentlyActiveDiv.fade('out');
            if (currentlyActiveDiv.hasClass('active'))
            {
                currentlyActiveDiv.removeClass('active');
            }
        }
        if (newActiveDiv != null)
        {
            newActiveDiv.fade('in');
            newActiveDiv.addClass('active');
        }
    }
}

/*********************************************/
/*********** END Promo Widget ***********/
/*********************************************/


/**********************************************/

window.addEvent('domready', bindTinyEditor);
function bindTinyEditor()
{
     if ($$('.tinyeditor').length > 0)
     {
         $$('.tinyeditor').each(
            function(el)
            {
                tinyMCE.init({
		        // General options
		        mode : "exact",
		        plugins : "paste,save,fullscreen,advimage",
		        elements : el.id,
		        theme : "advanced",
		        
		        theme_advanced_buttons1 : "save,advimage,|,bold,italic,underline,strikethrough,|,copy,cut,paste,pastetext,pasteword,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fullscreen",
		        theme_advanced_toolbar_location : "top",
		        theme_advanced_toolbar_align : "left",
		        
		        save_onsavecallback : el.getAttribute("savehandler"),
		        
		        paste_auto_cleanup_on_paste : true,
                paste_preprocess : function(pl, o) {
                    // Content string containing the HTML from the clipboard
                    //alert(o.content);
                    o.content =  o.content;
                },
                paste_postprocess : function(pl, o) {
                    // Content DOM node containing the DOM structure of the clipboard
                    //alert(o.node.innerHTML);
                    o.node.innerHTML = o.node.innerHTML;
                }

		        });

            }
         );
     }
}

function eventDescriptionSave(ed)
{
    var content = escape(ed.getContent());
    var id = $(ed.id).getAttribute("eventid");
    //alert(content + " " + id);
    
    var req = new Request(
        {
            method: 'post',
            url: '/handlers/updateeventdetails.ashx',
            data: {'eventid':id, 'description':content },
            onComplete: function (response) 
            { 
                 alert("Event description successfully updated.");
            }
        }
    ).send();
}


/**********************************************/

/*********************************************/
/***********     START Find Vendors   ***********/
/*********************************************/

window.addEvent('domready', setupVendorWidget);
function setupVendorWidget()
{

    if ($('btnFindVendors') != null)
    {
    
        $('btnFindVendors').addEvent('click', 
            function(ev)
            { 
               submitVendorSearch();
            } 
        );
        
        $('txtVendorSearchNear').addEvent('keypress', 
            function(e)
            { 
                if (e.key == "enter")
                {
                    e.stop();
                    submitVendorSearch();
                }
            } 
        );
    }

}

function submitVendorSearch()
{
    var categoryid = $('ddlVendorSearchCategory').value;
    var geo = $('txtVendorSearchNear').value;

    // make an ajax request to get the url to redirect to based on the selected category and geography.
    var req = new Request(
        {
            method: 'get',
            url: '/handlers/findvendorhandler.ashx',
            data: {
                'categoryid':categoryid,
                'geo':geo
                },
            onComplete:
                function(response)
                { 
                    // redirect to the returned url.
                    window.location.href = response;
                }
        }
    ).send();
}


/*********************************************/
/***********     START Find Vendors   ***********/
/*********************************************/





/*********************************************/
/***********     START NAV MENUS   ***********/
/*********************************************/

window.addEvent('domready', setupNavMenus);
function setupNavMenus()
{
    if ($("navbarNavigation") != null)
    {
	    $$(".pwgNavBarMainTab").each(
	        function(el)
	        {
	            if (!el.hasClass('clickOnly'))
	            {
		            el.addEvent('mouseover', 
		                function() 
		                { 
		                    $$(".pwgNavBarMainTab").each(function(subm) { subm.removeClass('hover'); });
		                    el.addClass('hover'); 
		                } 
		            );
		            
		            el.addEvent('mouseout', 
		                function() { 
		                    el.removeClass('hover'); 
		                } 
		            );
		        }
	        }
	    );
	}
}

window.addEvent('domready', bindLoginMenu);
function bindLoginMenu()
{
    if ($('loginMenu') != null)
    {
        $$('.loginBtn').each
        (
            function(el)
            {
		        el.addEvent('click',
		            function(ev) 
		            {
		                  $('loginMenu').addClass('hover'); 
		                  ev.stopPropagation();
		            }
		        );
    		    
		        $('loginMenu').addEvent('click', function(ev) {  ev.stopPropagation(); });
                window.addEvent('click', function() {  $('loginMenu').removeClass('hover'); } );
            }
        );
        
        $('txtLoginPassword').addEvent('keypress', 
            function(e)
            { 
                if (e.key == "enter")
                {
                    e.stop();
                    doSubmit('signin', ''); 
                    return false;
                }
            } 
        );
    }    
}




/*********************************************/
/***********     END  NAV  MENUS   ***********/
/*********************************************/




/*********************************************/
/***********     START SIGNUP VALIDATE   ***********/
/*********************************************/

window.addEvent('domready', bindSignUpForm);
function bindSignUpForm()
{
    if ($$('.pwgSignUp .pwgLoginFields ul') != null)
    {
        $$('.pwgSignUp .pwgLoginFields .loginField').each
        (
            function(el)
            {
                el.addEvent('blur', function(e) { validateField(el); } );
            }
        );
    }
}

window.addEvent('domready', bindRsvpForm);
function bindRsvpForm()
{
    if ($$('.pwgRsvpFields ul') != null)
    {
        $$('.pwgRsvpFields .rsvpField').each
        (
            function(el)
            {
                el.addEvent('blur', function(e) { validateField(el); } );
            }
        );
    }
}


window.addEvent('domready', bindInputTextForms);
function bindInputTextForms()
{
    if ($$('.pwgInputFields ul') != null)
    {
        $$('.pwgInputFields .inputTextField').each
        (
            function(el)
            {
                el.addEvent('blur', function(e) { validateField(el); } );
                
                var defValue = el.getProperty('defaultvalue');
                
                if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
                {
                    defValue = el.attributes['defaultvalue'].nodeValue ;
                }
               
                
                if (defValue != null)
                {
                    el.setProperty("title",defValue);
                    
                    if (el.value == "")
                    {
                        el.value = defValue;
                    }
                    el.addEvent('focus', function(e) { if (el.value == defValue) el.value = ""; });
                    el.addEvent('blur', function(e) { if (el.value == "") el.value = defValue; });
                }
            }
        );
        
        
         $$('.pwgInputFields .inputTextAreaField').each
        (
            function(el)
            {
                el.addEvent('blur', function(e) { validateField(el); } );
                
                var defValue = el.getProperty('defaultvalue');
                if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
                {
                    defValue = el.attributes['defaultvalue'].nodeValue ;
                }
                
                if (defValue != null)
                {
                    el.setProperty("title",defValue);
                    if (el.innerHTML.clean() == "" || el.innerHTML.clean() == "&nbsp;")
                    {
                        el.value = defValue;
                    }
                    el.addEvent('focus', function(e) { if (el.value == defValue) el.value = ""; });
                    el.addEvent('blur', function(e) { if (el.value.clean() == "") el.value = defValue; });
                }
            }
        );
    }
}



function validateField(el)
{
    if (el != null)
    {
        var isValid = true;
        
        if (el.hasClass('fvMandatory') && el.value != null && el.value.clean() == "")
        {
            // mandatory field not entered
            isValid = false;
        }
        else if (el.hasClass('fvMandatory') && el.value != null && el.getProperty("defaultvalue") != null && el.value == el.getProperty("defaultvalue"))
        {
            // mandatory field not entered
            isValid = false;
        }
        
        else if (el.hasClass('fvEmail') && el.value != null && el.value != '' && !validateEmail(el.value) )
        {
            // invalid email
            isValid = false;
        }
        else if (el.hasClass('fvMatch') && el.value != null && el.value != '' )
        {
            var matchel = $(el.getProperty('matchField'));
            if (el.value != matchel.value)
            {
                // does not match
                isValid = false;
            }
        }
        
        if (isValid)
        {
            // field is valid, remove highlight if exists
            el.getParent('ul').removeClass('highlight');
            
            if ($(el.id + '_valid') == null && !el.getParent('ul').hasClass('float'))
            {
                var okElement = new Element('span');
                okElement.addClass('fvValid');
                okElement.set('text', 'ok');
                okElement.set('id', el.id + '_valid');
                
                okElement.injectInside(el.getParent('li'))
            }
        }
        else
        {
            el.getParent('ul').addClass('highlight');
            if ($(el.id + '_valid') != null)
            {
                $(el.id + '_valid').dispose();
            }
        }
    }
}

function validateEmail(elementValue){
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
   return emailPattern.test(elementValue);
 }


function toggleVendorServices(o)
{
    if (o.checked)
    {
        $$('.vendorService').each(
            function(el)
            {
                el.checked = true;
            }
        );
    }
    else
    {
        $$('.vendorService').each(
            function(el)
            {
                el.checked = false;
            }
        );
    }
}

window.addEvent('domready', toggleVendorServicesBtn);
function toggleVendorServicesBtn()
{
    if ($('chkService_All') != null)
    {
        $$('.vendorService').each(
            function(el)
            {
                el.addEvent('click',
		            function(ev) 
		            {
		                 $('chkService_All').checked = false;
		            }
		        );
		    }
		);
	}
    		    
}


/*********************************************/
/***********     END SIGNUP VALIDATE   ***********/
/*********************************************/


/*********************************************/
/***********     START BRIDAL EVENT PHOTO AJAX   ***********/
/*********************************************/



window.addEvent('domready', InitBridalEventPhoto);
function InitBridalEventPhoto()
{
    if ($('eventFullSizeImage') != undefined)
    {
        GetEventPhoto(
            $('eventFullSizeImage').getProperty('listingid'), 
            $('eventFullSizeImage').getProperty('postingid'), 
            'eventFullSizeImage'
        );
    }
}


function GetEventPhoto(listingid, postingid, elemToUpdate)
{
    ajaxDoJSONRequest('/handlers/eventphotohandler.ashx?listingid=' + listingid + '&postingid=' + postingid + '&format=json', GetEventPhotoComplete, elemToUpdate);
}

function GetEventPhotoComplete(responseJSON, elemToUpdate)
{
    var resp = eval('(' + responseJSON + ')');
    if (resp != undefined)
    {
        $(elemToUpdate).innerHTML = unescape(resp.Response.HTML); 
        
        _gaq.push(['_trackPageview', window.location.hostname + window.location.pathname + resp.Response.uid + '/']);
        
        /*if (resp.Response.OmnitureProp1 != undefined)
        { 
            // trackAjaxPageView(resp.Response.OmnitureProp1);
            s.pageName = resp.Response.OmnitureProp1;
            s.prop1 = resp.Response.OmnitureProp1;
            s.prop35 = resp.Response.OmnitureProp35;
            s.prop36 = resp.Response.OmnitureProp36;
            
            void(s.t());
            
        }*/
    }
    else
    {
        $(elemToUpdate).innerHTML = unescape(responseJSON); 
    }
}



/*********************************************/
/***********     END BRIDAL EVENT PHOTO AJAX  ***********/
/*********************************************/


/*********************************************/
/***********     START VENDOR PHOTO AJAX   ***********/
/*********************************************/
window.addEvent('domready', TogglePhoneVendorBreakdown);
function TogglePhoneVendorBreakdown()
{

    if (Browser.Engine.name=='trident' && Browser.Engine.version<=6)
    {
        $$('div.phoneTheVendor').each(
            function(elem)
            {
                elem.addEvents({
                     'mouseover' : function()
                     {
                          elem.getElement('div.vendorContactBreakdown').style.display = 'block';
                     },
                     'mouseout' : function()
                     {
                          elem.getElement('div.vendorContactBreakdown').style.display = 'none';
                     }
                });
               
            }
        );
    }
}


window.addEvent('domready', InitVendorPhoto);
function InitVendorPhoto()
{
    if ($('vendorFullSizeImage') != undefined)
    {
        GetVendorPhoto(
            $('vendorFullSizeImage').getProperty('listingid'), 
            $('vendorFullSizeImage').getProperty('postingid'), 
            'vendorFullSizeImage'
        );
    }
}


function GetVendorPhoto(listingid, postingid, elemToUpdate)
{
    ajaxDoJSONRequest('/handlers/vendorphotohandler.ashx?listingid=' + listingid + '&postingid=' + postingid + '&format=json', GetVendorPhotoComplete, elemToUpdate);
}

function GetVendorPhotoComplete(responseJSON, elemToUpdate)
{
    var resp = eval('(' + responseJSON + ')');
    if (resp != undefined)
    {
        $(elemToUpdate).innerHTML = unescape(resp.Response.HTML); 
        
        _gaq.push(['_trackPageview', window.location.hostname + window.location.pathname + resp.Response.uid + '/']);
        
        /*if (resp.Response.OmnitureProp1 != undefined)
        { 
            // trackAjaxPageView(resp.Response.OmnitureProp1);
            s.pageName = resp.Response.OmnitureProp1;
            s.prop1 = resp.Response.OmnitureProp1;
            s.prop35 = resp.Response.OmnitureProp35;
            s.prop36 = resp.Response.OmnitureProp36;
            
            void(s.t());
            
        }*/
    }
    else
    {
        $(elemToUpdate).innerHTML = unescape(responseJSON); 
    }
}



window.addEvent('domready', ToggleVendorDescription);
function ToggleVendorDescription()
{
    if ($('vendorFullSizeImage') != null)
    {
        var maxHeight = ($('vendorFullSizeImage').getSize().y);
        
        if (maxHeight > 0)
        {
            if ($('vendorDetails').getSize().y >= maxHeight)
            {
                var originalHeight = ($('vendorDetails').getSize().y);
                $('vendorDetails').setStyle('height', maxHeight);
                 $('vendorDetails').addEvent('mouseover', function(e) { $('vendorDetails').setStyle('height', originalHeight); } );
                 $('vendorDetails').addEvent('mouseout', function(e) { $('vendorDetails').setStyle('height', maxHeight); } );
            }
        }
    }
}

/*********************************************/
/***********     END VENDOR PHOTO AJAX  ***********/
/*********************************************/



/*********************************************/
/*********** START SORT AND FILTER ***********/
/*********************************************/

window.addEvent('domready', bindVendorListingResults);
function bindVendorListingResults()
{
    if ($$('.listingResults .listing') != null)
    {
       $$('.listingResults .listing').each(
        function (elem)
        {
            var listingUrl = elem.getProperty('listingUrl');
            elem.addEvent('click', function(e) { 
			    window.location = listingUrl; 
				if(e.stopPropogation)
				{
				    e.stopPropogation();
				}
		    } );
            elem.addEvent('mouseover', function(e) { elem.addClass('listingHover'); } );
            elem.addEvent('mouseout', function(e) { elem.removeClass('listingHover'); } );
        }
       ); 
       
       $$('.listingResults .listing .listingButtons a').each(
        function (elem)
        {
            elem.addEvent('click', function(e) { 
			    if(e.stopPropogation)
				{
				    e.stopPropogation();
				}
			} );
        }
       ); 
    }
    
    
    if ($$('.spotlightListingResults .listing') != null)
    {
       $$('.spotlightListingResults .listing').each(
        function (elem)
        {
            var listingUrl = elem.getProperty('listingUrl');
            elem.addEvent('click', function(e) { 
			    window.location = listingUrl; 
				if(e.stopPropogation)
				{
				    e.stopPropogation();
				}
		    } );
            elem.addEvent('mouseover', function(e) { elem.addClass('listingHover'); } );
            elem.addEvent('mouseout', function(e) { elem.removeClass('listingHover'); } );
        }
       ); 
       
       $$('.spotlightListingResults .listing .listingButtons a').each(
        function (elem)
        {
            elem.addEvent('click', function(e) { 
			    if(e.stopPropogation)
				{
				    e.stopPropogation();
				}
			} );
        }
       ); 
    }
}


function bindTemplateMethods()
{
    $$('DIV .template').each(function(elem)
    {
        elem.setTemplateValue = function(placeholder, val)
        {
            if(elem != null)
            {
               var re = new RegExp(placeholder, "g");
               var n = this.get('html').replace(re, val);
               this.set('html', n);
            }
        }
    });

}

function replaceHtml(elem, placeholder, val)
{
   var re = new RegExp(placeholder, "g");
   var n = elem.get('html').replace(re, val, "g");
   elem.set('html', n);
  
}

function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}



// WebListing Class
var WebListing  = new Class({
      initialize: function(id, name)
      {
          this.Id = id,
          this.Name = name
      },
      Id : null,
      Name : null,
      Description : null,
      PhoneNumber : null,
      City : null,
      State : null,
      Thumbnail : null,
      URL : null,
      AvgRating : 0,
      ReviewCount : 0,
      Selected : false 
});

var WebListingOperationCriteria = new Class({
      initialize: function(listingId, marketId, categoryId)
      {
           this.ListingId = listingId,
           this.MarketId = marketId,
           this.CategoryId = categoryId
      },
      ListingId : null,
      MarketId : null,
      CategoryId : null     
});


var wbcrit = null;

function getFeaturedVendorListings()
{   
    if($('spotlightPlaceholder') != null)
    {
        var r = new Request(
        {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action': 'getspotlightlistings', 'data' : JSON.encode(wbcrit) },
        onComplete:
        function(response)
        {  
            $('spContainer').empty();
            
            var listings = JSON.decode(response);
            if(listings != null)
            {
                for(var i = 0; i < listings.length; i++)
                {
                    var template = $('spotlightPlaceholder').getChildren()[0];
                    var sp = template.clone();
                    
                    sp.inject($('spContainer'));
                    
                    // set the template values
                    bindTemplateMethods();
                    
                    sp.setTemplateValue('#name', listings[i].Name);
                    sp.setTemplateValue('#phoneNumber', listings[i].PhoneNumber);
                    sp.setTemplateValue('#city', listings[i].City);
                    sp.setTemplateValue('#state', listings[i].State);
                    sp.setTemplateValue('#url', listings[i].URL);
                    //sp.setTemplateValue('#thumbnail', listings[i].Thumbnail);
                    sp.setTemplateValue('#description', listings[i].Description);
                    
                 
                    var pl = sp.getElements(".profileLink");
                    pl.each(function(el)
                    {
                       pl.set("href", listings[i].URL);
                    });
                    
                    
                    var cl = sp.getElements(".contactLink");
                    cl.each(function(el)
                    {
                       el.set("href", listings[i].URL + "contact/");
                    });
                    
                    var wl = sp.getElements(".websiteLink");
                    wl.each(function(el)
                    {
                       el.set("href", listings[i].URL + "website/");
                    });
                    
                    
                    var wl = sp.getElements(".thumbnail");
                    wl.each(function(el)
                    {
                       el.set("src", listings[i].Thumbnail);
                    });
                    
                  
                    
                    // get the stars
                    if( listings[i].ReviewCount > 0)
                    {
                         var stars  = $('ratingStarsTemplate');
                         var s = stars.clone();
                         s.setStyle('display','block');
                         //replaceHtml( s, '#percentage', String.from( ( listings[i].AvgRating * 100 ) / 5)  );
                        
                        var perc = ((listings[i].AvgRating * 100) / 5);
                        
                        //var stars1 = getElementsByClassName("pwgStarsMask", s); 
                        var stars1 = s.getElements(".pwgStarsMask");
                        
                        stars1[0].setStyle("left", String.from(perc) + "%");
                        
                        //var stars2 = getElementsByClassName("pwgStarsOff", s); 
                        var stars2 = s.getElements(".pwgStarsOff");
                        stars2[0].setStyle("left", "-" + String.from(perc) + "%");
                        
                        var ratings1 = getElementsByClassName("pwgReviewCount", s); 
                        replaceHtml(s, "#reviewCount", listings[i].ReviewCount);
                        replaceHtml(s, "#name", listings[i].Name);
                        replaceHtml(s, "#url", listings[i].URL);
                        
                        sp.setTemplateValue('#ratings', s.get('html'));
                    }
                    else
                    {
                         var writeReview = $('writeReviewTemplate');
                         var w = writeReview.clone();
                         w.setStyle('display','block');
                         
                         replaceHtml( w, '#url', listings[i].URL );
                         replaceHtml( w, '#name', listings[i].Name );
                         
                         sp.setTemplateValue('#ratings', w.get('html'));
                    }
                   
                    sp.setProperty('listingurl', listings[i].URL);
                    
                }
                bindVendorListingResults();
            }
      
        }
       }).send();
    }
}



function sortVendorListings(sortBy, categoryID, cityid)
{

    if ($('pwgVendorListingResults') != null)
    {
        $$('.listingResults').set('opacity','.10');
        $('listingResultsLoading').style.display = 'block';
        
        
        var req = new Request(
            {
                method: 'get',
                url: '/handlers/vendorlistinghandler.ashx',
                data: {
                    'sortBy':sortBy,
                    'pageSize': $('PageSize').value,
                    'currentPage': 1,
                    'categoryID':categoryID,
                    'cityID':cityid,
                    'searchType':'Vendors',
                    'format':'html'
                    },
                noCache: 'true',
                onComplete:
                    function(response)
                    { 
                        $('pwgVendorListingResults').innerHTML = response;
                        createShadowBox();
                        getFeaturedVendorListings();
                        bindVendorListingResults();
                    }
            }
        ).send();
    }
}

function pageVendorListings(newPageSize, categoryID, currentSort, cityid)
{

    if ($('pwgVendorListingResults') != null)
    {
        $$('.listingResults').set('opacity','.10');
        $('listingResultsLoading').style.display = 'block';
        
        
        var req = new Request(
            {
                method: 'get',
                url: '/handlers/vendorlistinghandler.ashx',
                data: {
                    'pageSize': newPageSize,
                    'currentSort':currentSort,
                    'categoryID':categoryID,
                    'cityID':cityid,
                    'searchType':'Vendors',
                    'format':'html'
                    },
                noCache: 'true',
                onComplete:
                    function(response)
                    { 
                        $('pwgVendorListingResults').innerHTML = response;
                        createShadowBox();
                        bindVendorListingResults();
                    }
            }
        ).send();
    }
}

/*********************************************/
/*********** END   SORT AND FILTER ***********/
/*********************************************/




/*********************************************/
/*********** START Facebook Connect ***********/
/*********************************************/

function reconcileFBConnect()
{
               FB.Connect.get_status().waitUntilReady( function( status ) 
               { 
                   switch ( status ) 
                   { 
                       case FB.ConnectState.connected: 
                           loggedIn = true; 
                         
                           var dotNetAuthCookie = Cookie.read('.ASPXFORMSAUTH');
                           if(dotNetAuthCookie == null)
                           {
                              signIn();
                           }
                           break; 
                       case FB.ConnectState.appNotAuthorized: 
                       case FB.ConnectState.userNotLoggedIn: 
                           loggedIn = false; 
                           var dotNetAuthCookie = Cookie.read('.ASPXFORMSAUTH');
                           if(dotNetAuthCookie != null)
                           {
                              // do nothing
                              //signOutAll('facebook');
                           }
                           break;
                    } 
                }); 
}

function signOutAll(socialApp, redirectUrl)
{
     var loggedIn = false;
     
     if(redirectUrl==null)
     {
        redirectUrl = window.location.href;
     }
     
     ajaxDoHtmlRequest('/handlers/logouthandler.ashx', null, 
     function()
     {
        if(socialApp == "facebook")
        {
           FB.Connect.ifUserConnected( 
           function()
           {
               FB.Connect.logoutAndRedirect(redirectUrl);
           },
           function()
           {
               RedirectPage(redirectUrl);
           });
        }
        else
        {
           RedirectPage(redirectUrl);
        }
      }
      , 
      null);
}

function signIn()
{
     ajaxDoHtmlRequest('/handlers/logouthandler.ashx?task=signin', null, function(){ RefreshParent(); }, null);
}


/*********************************************/
/*********** End Facebook Connect ***********/
/*********************************************/


/****************************************************/
/*********** START Common UI Controls **************/
/****************************************************/

window.addEvent('domready', function() {

    $$('.commonMarketList').each(function(el)
    {
            var r = new Request(
            {
                        method: 'get',
                        url: '/handlers/securityhandler.ashx',
                        data : {'action':'GetMarkets'},
                        onComplete:
                        function(response)
                        {  
                            var markets = JSON.decode(response);
                            
                            el.empty();
                            
                            (new Element('option', {'value' : '0', 'text' : 'Select a market' })).inject(el);
                            
                            for(var i = 0; i < markets.length; i++)
                            {
                                 (new Element('option', {'value' : markets[i].MarketID, 'text' : markets[i].MarketName })).inject(el);
                            }
                            
                            if(el.loadCompleteHandler != null) el.loadCompleteHandler();
                        }
            }).send();
     });
     
     $$('.commonMarketListNoLabel').each(function(el)
     {
            var r = new Request(
            {
                        method: 'get',
                        url: '/handlers/securityhandler.ashx',
                        data : {'action':'GetMarkets'},
                        onComplete:
                        function(response)
                        {  
                            var markets = JSON.decode(response);
                            
                            el.empty();
                            
                            //(new Element('option', {'value' : '0', 'text' : 'Select a market' })).inject(el);
                            
                            for(var i = 0; i < markets.length; i++)
                            {
                                 (new Element('option', {'value' : markets[i].MarketID, 'text' : markets[i].MarketName })).inject(el);
                            }
                        }
            }).send();
     });
     
     
    
});

/*************************************************/
/*********** END Common UI Controls **************/
/*************************************************/


/*************************************************/
/*********** PWG JavaScript API    ***************/
/*************************************************/

var PWGServices = {};
var PWGUI = {};


/*************************************************/
/*********** Advertiser JavaScript API************/
/*************************************************/

PWGServices.Advertisers = {};

// Deactivate
PWGServices.Advertisers.deactivate = function(advertiserId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/advertiserhandler.ashx',
            data : {'action' : 'deactivate','advertiserId' : advertiserId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
                
            }
       }
       ).send();
}

PWGServices.Advertisers.activate = function(advertiserId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/advertiserhandler.ashx',
            data : {'action' : 'activate','advertiserId' : advertiserId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
                
            }
       }
       ).send();
}


PWGServices.Advertisers.getByMarket = function(marketId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/advertiserhandler.ashx',
            data : {'action' : 'getbymarket','marketId' : marketId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                
                if(onCompleteHandler != null) onCompleteHandler(result);
                
            }
       }
       ).send();
}

/*************************************************/
/*********** WebListings JavaScript API***************/
/*************************************************/

PWGServices.WebListings = {};


PWGServices.WebListings.deleteListing = function(criteria, onCompleteHandler)
{
  var req = new Request(
  {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action' : 'delete','data' : JSON.encode(criteria) },
        noCache : true,
        /*useSpinner : true,
        spinnerTarget : $('summary2'),
        spinnerOptions : { message : 'Please wait...'},*/
        onComplete:
        function(response)
        {  
           var result = JSON.decode(response);
           
           if( result == true) 
           {
              if(onCompleteHandler != null) onCompleteHandler();
           }
        }
   }
   ).send();   
}


PWGServices.WebListings.activate = function(criteria, onCompleteHandler)
{
  var req = new Request(
  {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action' : 'activate','data' : JSON.encode(criteria) },
        noCache : true,
        /*useSpinner : true,
        spinnerTarget : $('summary2'),
        spinnerOptions : { message : 'Please wait...'},*/
        onComplete:
        function(response)
        {  
           var result = JSON.decode(response);
           
           if( result == true) 
           {
              if(onCompleteHandler != null) onCompleteHandler();
           }
        }
   }
   ).send();   
}
 

PWGServices.WebListings.deactivate = function(criteria, onCompleteHandler)
{
  var req = new Request(
  {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action' : 'deactivate','data' : JSON.encode(criteria) },
        noCache : true,
        /*useSpinner : true,
        spinnerTarget : $('summary2'),
        spinnerOptions : { message : 'Please wait...'},*/
        onComplete:
        function(response)
        {  
           var result = JSON.decode(response);
           
           if( result == true) 
           {
              if(onCompleteHandler != null) onCompleteHandler();
           }
        }
   }
   ).send();   
}

PWGServices.WebListings.getByClient = function(criteria, onCompleteHandler)
{
  var req = new Request(
  {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action' : 'getbyclient','data' : JSON.encode(criteria) },
        noCache : true,
        /*useSpinner : true,
        spinnerTarget : $('summary2'),
        spinnerOptions : { message : 'Please wait...'},*/
        onComplete:
        function(response)
        {  
            var result = JSON.decode(response);
            
            if(onCompleteHandler != null) onCompleteHandler(result);
            
        }
   }
   ).send();
}

PWGServices.WebListings.getAllCategories = function(onCompleteHandler)
{
  var req = new Request(
  {
        method: 'get',
        url: '/handlers/weblistinghandler.ashx',
        data : {'action' : 'getallcategories' },
        /*useSpinner : true,
        spinnerTarget : $('summary2'),
        spinnerOptions : { message : 'Please wait...'},*/
        onComplete:
        function(response)
        {  
            var result = JSON.decode(response);
            
            if(onCompleteHandler != null) onCompleteHandler(result);
            
        }
   }
   ).send();
}

PWGServices.Markets = {};

PWGServices.Markets.getAvailable = function(onCompleteHandler)
{
     var req = new Request(
      {
            method: 'get',
            url: '/handlers/securityhandler.ashx',
            data : {'action' : 'GetMarkets'},
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if(onCompleteHandler != null) onCompleteHandler(result);
              
            }
       }
       ).send();
}




PWGServices.Distribution = {};

PWGServices.Distribution.getByMarket = function(marketId, onCompleteHandler)
{
     var req = new Request(
      {
            method: 'get',
            url: '/handlers/distributorhandler.ashx',
            data : {'action' : 'getbymarket', 'marketid' : marketId},
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if(onCompleteHandler != null) onCompleteHandler(result);
              
            }
       }
       ).send();
}

PWGServices.Distribution.deactivate = function(distributorId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/distributorhandler.ashx',
            data : {'action' : 'deactivatedistributor','distributorId' : distributorId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}


/*************************************************/
/*********** Reviews JavaScript API***************/
/*************************************************/

PWGServices.Reviews = {};

// Deactivate a review
PWGServices.Reviews.deactivateReview = function(reviewId, listingId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/reviewshandler.ashx',
            data : {'action' : 'DeactivateReview','reviewId' : reviewId, 'listingId' : listingId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}


/*************************************************/
/*********** Album JavaScript API***************/
/*************************************************/

PWGServices.Album = {};

// Deactivate a review
PWGServices.Album.resort = function(albumId, mediaIds, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/albumhandler.ashx',
            data : {'action' : 'Resort','albumId' : albumId, 'mediaIds' : JSON.encode(mediaIds) },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}

/*************************************************/
/*********** FAQs JavaScript API******************/
/*************************************************/


PWGServices.Faqs = {};

PWGServices.Faqs.deactivate = function(faqId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/faqhandler.ashx',
            data : {'action' : 'deactivatefaq','faqId' : faqId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}


/*************************************************/
/*********** Deals JavaScript API******************/
/*************************************************/


PWGServices.Deals = {};

PWGServices.Deals.deactivate = function(dealId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/weddingdealhandler.ashx',
            data : {'action' : 'deactivatedeal','dealId' : dealId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}



/*************************************************/
/*********** Ad JavaScript API********************/
/*************************************************/

PWGServices.Ads = {};

// AdCriteria Class
var AdCriteria  = new Class({
      initialize: function(adType, marketId, targets)
      {
         this.AdType = adType,
         this.MarketId = marketId,
         this.Targets = targets
      },
      AdType : 1,
      MarketId : 1,
      Targets : {}
});

// Get ads by criteria
PWGServices.Ads.getByCriteria = function(crit, onCompleteHandler)
{
  
      
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/adhandler.ashx',
            data : {'action' : 'getbycriteria','data' : JSON.encode(crit) },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var results = JSON.decode(response);
                
                if(onCompleteHandler != null) onCompleteHandler(results);
            }
       }
       ).send();
       
       
}



PWGServices.Ads.deactivate = function(adId, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/adhandler.ashx',
            data : {'action' : 'deactivatead','adId' : adId },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                if( result == true) 
                {
                   if(onCompleteHandler != null) onCompleteHandler();
                }
            }
       }
       ).send();
}


/*************************************************/
/*********** User JavaScript API***************/
/*************************************************/

PWGServices.Users = {};

PWGServices.Users.emailPassword = function(username, onCompleteHandler)
{
      var req = new Request(
      {
            method: 'get',
            url: '/handlers/securityhandler.ashx',
            data : {'action' : 'EmailPassword','username' : username },
            /*useSpinner : true,
            spinnerTarget : $('summary2'),
            spinnerOptions : { message : 'Please wait...'},*/
            onComplete:
            function(response)
            {  
                var result = JSON.decode(response);
                //if( result == true) 
                //{
                   if(onCompleteHandler != null) onCompleteHandler(result);
                //}
            }
       }
       ).send();
}


/*************************************************/
/*********** Ad UI JavaScript API***************/
/*************************************************/

PWGUI.Widgets = {};
PWGUI.Controls = {};


PWGUI.Controls.WebListingCategoryCheckList = function(id)
{
     var elem = $(id);
     
     elem.empty();
     
     PWGServices.WebListings.getAllCategories(function(categories)
     {
         for(var i = 0; i < categories.length; i++)
         {
             // render
             new Element("input", 
                   { 'type' : 'checkbox', text : categories[i].Name, 'value' : categories[i].Id  }
                ).inject(elem);
            
         } 
     });  
     
}

PWGUI.Controls.MarketsAvailableCheckList = function(id)
{
     var elem = $(id);
     
     elem.empty();
     
     PWGServices.Markets.getAvailable(function(markets)
     {
         for(var i = 0; i < markets.length; i++)
         {
             // render
             new Element("input", { 'type' : 'checkbox', 'value' : markets[i].MarketID, 'label' : markets[i].MarketName }
                        ).inject(elem);
            
         } 
     });  
     
}

PWGUI.Controls.Markets = function(id){}


PWGUI.Widgets.Ad = function(id, crit)
{
     var elem = $(id);
     
     elem.setStyles({
         'text-align' : 'left'
     });
     
     // initialize the container element
     elem.empty();
     new Element("ul", 
                   { styles : {'list-style' : 'none', 'margin-bottom' : '15px'} }
                ).inject(elem);
      
     PWGServices.Ads.getByCriteria(crit, function(ads)
     {
         for(var i = 0; i < ads.length; i++)
         {
             // render each ad
             PWGUI.Widgets.adRender(elem, ads[i]);
         } 
     });  
}

PWGUI.Widgets.adRender = function(elem, ad)
{
    var adItemContainer = elem.getChildren()[0];
    
    new Element( "li", 
                 { 
                   html: '<a href="'+ ad.URL +'"><b>' + ad.Content.Heading + '</b></a><br/>' 
                   + ad.Content.Line1 + '<br/>' 
                   + ad.Content.Line2 + '<br/>' 
                   + '<span style="color : #0E774A;">' + ad.Domain + '</span>',
                   styles : {'margin-bottom' : '10px'}
                 }
               ).inject( adItemContainer );
}


