function controller(page,page_id) {
    
    // the main part - document ready function

    $(document).ready(function(){       
                
        if ($.cookie('lenas_language')) {
            language = $.cookie('lenas_language');
        } else {
            language = "EN";
            setLanguage(language);
        }
        
        // google tracking code
        pageTracker._trackPageview(page);
        
        // different display options based on various inputs. 
        // in the xml transform we use a random number on the end of 
        // the xml url to prevent ie caching xml
        
        var randomVal = Math.floor(Math.random()*100000);
       
        if (page == 'showcoll') {
            $("#content").fadeTo('slow',0.1);
            $("#moveable_content").fadeOut("fast");
            $("#moveable_content").transform({
                                                xml: {
                                                      url: "/cgi-bin/main.cgi?qt=showcoll&lang="+language+"&page_id="+page_id+"&random="+randomVal, 
                                                      beforeSend: showLoading()
                                                     },
                                                xsl: "/xsl/ls_v2.xsl",
                                                success: displayDiv,
                                                pass: {param1: page}
                                            });            

        } else if (page == 'shownewsitem') {
            $("#content").fadeTo('slow',0.1);
            $("#moveable_content").fadeOut("fast");
            $("#moveable_content").transform({
                                 xml: {
                                       url: "/cgi-bin/main.cgi?qt=shownewsitem&page_id="+page_id+"&random="+randomVal,
                                       beforeSend: showLoading()
                                      },
                                 xsl: "/xsl/ls_v2.xsl",
                                 success: displayDiv,
                                 pass: {param1: page}
                               }); 
                               
        } else if (page == 'menu') {
            $("#hex").transform({
                                 xml: "/cgi-bin/main.cgi?qt=menu&lang="+language+"&random="+randomVal, 
                                 xsl: "/xsl/ls_v2.xsl"
                               });  
            
        } else if ((page == 'collections') || (escape(page) == 'cole%E7%F5es') || (escape(page) == 'cole%C3%A7%C3%B5es')) {
            $("#content").fadeTo('slow',0.1);
            $("#moveable_content").fadeOut("fast");
            $("#moveable_content").transform({
                                                xml: {
                                                      url: "/cgi-bin/main.cgi?qt=coll&lang="+language+"&page_id="+page_id+"&random="+randomVal,
                                                      beforeSend: showLoading()
                                                     },
                                                xsl: "/xsl/ls_v2.xsl",
                                                success: displayDiv,
                                                pass: {param1: page}
                                            });             
        
        } else if ((page == 'news') || (escape(page) == 'not%EDcias') || (escape(page) == 'not%EDcia') || (escape(page) == 'not%C3%ADcia')) {
            $("#content").fadeTo('slow',0.1);
            $("#moveable_content").fadeOut("fast");
            $("#moveable_content").transform({
                                                xml: {
                                                      url: "/cgi-bin/main.cgi?qt=shownews&lang="+language+"&random="+randomVal, 
                                                      beforeSend: showLoading()
                                                     },
                                                xsl: "/xsl/ls_v2.xsl",
                                                success: displayDiv,
                                                pass: {param1: page}
                                            });
 
        } else if (page_id) {
            $("#content").fadeTo('slow',0.1);
            $("#moveable_content").fadeOut("fast");
            $.transform({
                         xml: {
                               url: "/cgi-bin/main.cgi?qt=show&page_id="+page_id+"&random="+randomVal,
                               beforeSend: showLoading()
                              },
                         xsl: "/xsl/ls_v2.xsl",
                         success: XsltCompleted
                       });    

        } else {
            $("#moveable_content").html("<h3>Oooops!</h3>");               
        }
        
    }); // document ready function



    // the success/complete call back functions if any
    // go here to override the default functions 
    
    function showLoading() {
        $("#loading").fadeIn('fast');
    }
    
    
    
    function XsltCompleted(xml,xsl,xmlorig) {
        //alert(xml);       
        $("#moveable_content").transform({
                                            xmlstr: xml,
                                            xsl: "/xsl/ls_v2.xsl",
                                            success: displayDiv
                                        })
        
    } /* XsltCompleted */
    
    
    function displayDiv(html,xsl,xml,obj) {

        //======================================================
        //  main function for displaying
        //======================================================
        
        //alert($('#moveable_content').html());
        
        // fade out loading
        $("#loading").fadeOut('fast',0);
                
        // a msie hack as find doesn't work unless the xml or 
        // xmlstr begins with an <xml> tag
        
        var blurb;
        if ($.cookie('lenas_language') == 'EN') {
            blurb = 'lena santana fashion | english | '; 
        } else {
            blurb = 'lena santana fashion | brasil | '; 
        } 
        
        if ($.browser.msie) {
            xmlstr = '<xml>';
            xmlstr = xmlstr+xml;
            xmlstr = xmlstr+'</xml>';
        } else {
            xmlstr = xml;
        }
        
        if ($("newspage", xmlstr).text() || $("NEWSPAGE", xmlstr).text()) {
            if ($.cookie('lenas_language') == 'EN') {
                pagename = 'news';
            } else {
                pagename = 'noticias';
            }
        } else {
            if ($.browser.msie) {
            	pagename = $("HEADLINE", xmlstr).text();
            } else {
                pagename = $("headline", xmlstr).text();
            }
        }
        
        document.title = blurb + pagename.toLowerCase(); 
        
        // another ie hack as for some reason it uppercases the
        // xml tags when transforming - go figure!
        if ($("css_id", xmlstr).text()) {
            css_id = $("css_id", xmlstr).text();
        } else if ($("CSS_ID", xmlstr).text()) {
            css_id = $("CSS_ID", xmlstr).text();
        } else if ($("page_css_id", xmlstr).text()) {
            css_id = $("page_css_id", xmlstr).text();
        } else if ($("PAGE_CSS_ID", xmlstr).text()) {
            css_id = $("PAGE_CSS_ID", xmlstr).text();
        } else {
            css_id = 'default';
        }
        
        var str = $('#moveable_content').html();
        var b = str.replace(/\&lt;/g,"<");
        str = b.replace(/\&gt;/g,">");
        b = str.replace(/\&amp;/g,"&");
        str = b.replace(/\^/g, "'");
        str = str.replace( /<strong>[\n]*/gi, "<b>" );
        str = str.replace( /<\/strong>[\n]*/gi, "</b>" );
        $('#moveable_content').html(str);
        
        if (css_id == 'news') {
            
            //======================================================
            //  news item
            //======================================================
            $("#backie_layer").fadeOut('slow',function(){
                $("#backie_layer").css('zIndex', '-1');
                $("#backie_layer").empty;
            });
            $('#slideshow').cycle('pause');
            
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '30px',
                                        bottom: '100px',
                                        width: '700px'
                                      });
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.92);
            $("#main_content_layer").css('zIndex', '999');
            
        } else if (css_id == 'collection_a') {
            
            //======================================================
            //  collection a - circus
            //======================================================
            document.title = blurb + 'circus collection';
            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '0px',
                                        top: '0px',
                                        width: '950px',
                                        height: '600px'
                                      });       
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',1.0);
            $("#main_content_layer").css('zIndex', '999');          

            $('#column_collection_a').cycle({ 
                fx:     'zoom',
                speed:   1000,
                timeout: 3000,
                delay:  -2000,
                pager:  '#collection_a_nav', 
                pagerAnchorBuilder: function(idx, slide) { 
                    // return selector string for existing anchor 
                    return '#collection_a_nav li:eq(' + idx + ') a'; 
                } 
            });
                
            $('#pauseButton').click(function() {
                $('#column_collection_a').cycle('pause');
            });
            $('#resumeButton').click(function() {
                $('#column_collection_a').cycle('resume');      
            });
            
        } else if (css_id == 'collection_b') {
            
            //======================================================
            //  collection b - lets break it
            //======================================================
            document.title = blurb + 'lets break it collection';
            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/data/collections/22/back_lets-break-it.jpg' alt='' />");
            $("#backie_layer").fadeIn('fast');
            $("#backie_layer").css('zIndex', '100');
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '620px',
                                        top: '20px',
                                        width: '300px',
                                        height: '600px'
                                      });       
            $("#moveable_content").fadeIn('slow');
            $("#moveable_content").fadeTo('slow',1.0);
            $("#main_content_layer").css('zIndex', '999');          
        
            $('#column_collection_b').cycle({ 
                speed:  1000, 
                timeout: 4000, 
                fx:     'shuffle'
            });         

            $('#pauseButtonb').click(function() {
                $('#column_collection_b').cycle('pause');
            });
            $('#resumeButtonb').click(function() {
                $('#column_collection_b').cycle('resume');      
            });
        
        } else if (css_id == 'collection_c') {
            
            //======================================================
            //  collection c - b+w
            //====================================================== 
            document.title = blurb + 'black and white collection';
            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");
            
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '80px',
                                        top: '70px',
                                        width: '800px',
                                        height: '550px'
                                      });       
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',1.0);
            $("#main_content_layer").css('zIndex', '999');        
            
            $('#column_collection_c').cycle({ 
                fx:     'curtainX',
                sync:    0,
                delay:  -2000
            });
            $('#column_collection_c2').cycle({ 
                fx:     'curtainY',
                sync:    0
            });

            $('#pauseButtonc').click(function() {
                $('#column_collection_c').cycle('pause');
            });

            $('#resumeButtonc').click(function() {
                $('#column_collection_c').cycle('resume');      
            });
            $('#pauseButtonc2').click(function() {
                $('#column_collection_c2').cycle('pause');
            });

            $('#resumeButtonc2').click(function() {
                $('#column_collection_c2').cycle('resume');     
            });        

        } else if (css_id == 'collection_d') {
            
            //======================================================
            //  collection d - renda-se
            //======================================================
            document.title = blurb + 'renda-se collection';
            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");            
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            if ($.browser.msie) {
                $('#moveable_content').css({
                                            width: '950px',
                                            height: '550px'
                                          });       
            } else {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '0px',
                                            top: '0px',
                                            width: '950px',
                                            height: '600px'
                                          });           
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',1.0);
            $("#main_content_layer").css('zIndex', '999');
        
            $('#column_collection_d').cycle({ 
                fx: 'fade',
                speed:   1500,
                timeout: 5000,
                sync:    1,
                random:  1
            });
            $('#column_collection_dback').cycle({ 
                fx: 'fade',
                speed:   1500,
                timeout: 5000,
                sync:    1,
                random:  1
            });        

            $('#pauseButtond').click(function() {
                $('#column_collection_d').cycle('pause');
                $('#column_collection_dback').cycle('pause');
            });
            $('#resumeButtond').click(function() {
                $('#column_collection_d').cycle('resume');    
                $('#column_collection_dback').cycle('resume');    
            });

        } else if (css_id == 'collection_e') {
            
            //======================================================
            //  collection e - flowering
            //======================================================
            document.title = blurb + 'flowering collection';
            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");
            
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            if ($.browser.msie) {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '0px',
                                            top: '0px',
                                            width: '950px',
                                            height: '600px'
                                          });       
            } else {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '0px',
                                            top: '0px',
                                            width: '950px',
                                            height: '600px'
                                          });       
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',1.0);
            $("#moveable_content").css({
                                        background: '#4a4b4d'
                                      });
            $("#main_content_layer").css('zIndex', '999');        
            
            $('#column_collection_e').cycle({ 
                fx:     'turnDown',
                speed: 2000,
                delay: -3000
            });

            $('#pauseButtone').click(function() {
                $('#column_collection_e').cycle('pause');
            });

            $('#resumeButtone').click(function() {
                $('#column_collection_e').cycle('resume');
            });
            
        } else if (css_id == 'profile') {
            
            //======================================================
            //  profile
            //======================================================
            $("#backie_layer").fadeOut('slow',function(){
                $("#backie_layer").css('zIndex', '-1');
                $("#backie_layer").empty;
            });
            if ($.browser.msie) {
                $('#moveable_content').css({
                                        position: 'absolute',
                                        left: '10px',
                                        top: '29px',
                                        width: '430px',
                                        height: '562px'
                                      });
            } else {
                $('#moveable_content').css({
                                        position: 'absolute',
                                        left: '10px',
                                        top: '9px',
                                        width: '430px'
                                      });
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.95);
            $("#main_content_layer").css('zIndex', '999');
            
        } else if ((css_id == 'contact') || (css_id == 'contato')) {
            
            //======================================================
            //  contact
            //======================================================
            $("#backie_layer").html("<img width='950px' border='1px' height='600px' src='/images/backgrounds/home-page-5.jpg' title='Contact Us' alt='Contact Us' />");
            
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            if ($.browser.msie) {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '30px',
                                            top: '380px',
                                            width: '856px',
                                            height: '210px'
                                          });            
            } else {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '30px',
                                            top: '390px',
                                            width: '885px',
                                            height: '200px'
                                          });
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.8);
            $("#main_content_layer").css('zIndex', '999');
                              
        } else if ((css_id == 'collections') || (escape(css_id) == 'cole%E7%F5es')) {

            //======================================================
            //  all collections
            //======================================================                
            //$("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '30px',
                                        top: '20px',
                                        width: '950px',
                                        height: '600px'
                                      });
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.95);
            $("#main_content_layer").css('zIndex', '999');
            if ($.browser.msie) {
                $("#extract").css({
                                   width: '810px',
                                   height: '550px'
                                 });
            } else {
                $("#extract").css({
                                   width: '810px',
                                   height: '530px'
                                 });
            }
            
        } else if (css_id == 'wholepage') {

            //======================================================
            //  whole page 
            //======================================================         

            $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");            
            $("#backie_layer").fadeIn('slow');
            $("#backie_layer").css('zIndex', '100');
            $('#moveable_content').css({
                                        position: 'relative',
                                        left: '0px',
                                        top: '0px',
                                        width: '950px',
                                        height: '600px'
                                      });       
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',1.0);
            $("#main_content_layer").css('zIndex', '999');
            
        } else if (css_id == 'default_850') {

            //======================================================
            //  default with width of 850 - actually 850
            //======================================================         
            $("#backie_layer").fadeOut('slow',function(){
                $("#backie_layer").css('zIndex', '-1');
                $("#backie_layer").empty;
            });
            if ($.browser.msie) {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '10px',
                                            top: '5px',
                                            height: '100%',
                                            width: '900px'
                                          });
            } else {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '20px',
                                            top: '7px',
                                            width: '850px'
                                          });
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.99);
            $("#main_content_layer").css('zIndex', '999');

        } else {

            //======================================================
            //  default
            //======================================================  
            $("#backie_layer").fadeOut('slow',function(){
                $("#backie_layer").css('zIndex', '-1');
                $("#backie_layer").empty;
            });
            if ($.browser.msie) {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '30px',
                                            top: '100px',
                                            height: '100%'
                                          });
            } else {
                $('#moveable_content').css({
                                            position: 'relative',
                                            left: '30px',
                                            top: '100px'
                                          });
            }
            $("#moveable_content").fadeIn('fast');
            $("#moveable_content").fadeTo('fast',0.92);
            $("#main_content_layer").css('zIndex', '999');
        }
        
    } /* displayDiv */
        
} /* controller */

function switch_focus (page,page_id) {
    
    $('#slideshow').cycle('resume');
    $("#moveable_content").fadeOut("fast");
    $("#moveable_content").empty;
    $("#moveable_content").css({
                                        background: 'none'
                                      });
    $("#main_content_layer").css('zIndex', '333');
    $("#backie_layer").fadeOut('slow',function(){
        $("#backie_layer").css('zIndex', '-1');
        $("#backie_layer").empty;
    });
    $("#backie_layer").html("<img width='951px' id='backcol' height='601px' src='/images/backgrounds/white.jpg' alt='' />");    
    $("#content").fadeTo('slow',1.0);
    $("#content").css('zIndex', '555');
    
    var blurb;
    if ($.cookie('lenas_language') == 'EN') {
        blurb = 'lena santana fashion | english | '; 
    } else {
        blurb = 'lena santana fashion | brasil | '; 
    }    

	if (!($.cookie('lena_bin_ere'))) {
		$.cookie('lena_bin_ere', '1', { path: '/', expires: $.datemaker('+10m') } );
	}

    if (page) { 
        document.title = blurb + page;
        controller(page,page_id);       
    } else {
        document.title = blurb +'home'; 
        if ((document.location.href != "http://www.lenasantana.com/") &&
            (document.location.href != "https://www.lenasantana.com/")) {

            var str = document.location.href; 
            var patt1 = /http:\/\/www.lenasantana.com\/br/g;
            var patt2 = /https:\/\/www.lenasantana.com\/br/g;

            if (str.match(patt1) || str.match(patt2))  {
                $.cookie('lenas_language', 'BR', { path: '/', expires: 1000 });
            } else {
                $.cookie('lenas_language', 'EN', { path: '/', expires: 1000 });
            }
            //alert('changing '+document.location.href);
            document.location.href = "/"; 
        }
    }
}

function setLanguage(lang) {
    $.cookie('lenas_language', lang, { path: '/', expires: 1000 } );
    location.href = "/";
}

function processReturnedContactXML(responseXML) { 
    // 'responseXML' is the XML document returned by the server; we use 
    // jQuery to extract the content of the message node from the XML doc 

    var comment = null;
    comment = $('comment', responseXML).text();
    var lang = $('lang', responseXML).text();
    var form = $('form', responseXML).text();
    var newsletter = $('newsletter', responseXML).text();
    var form = $('form', responseXML).text();
    var name = $('name', responseXML).text();
    var email = $('email', responseXML).text();

    
    if (comment == 'yes' && lang == 'EN' && newsletter == 'yes' && form == 'signup') {
        controller('comment and newsletter',84);
    } else if (comment == 'no' && lang == 'EN' && newsletter == 'yes' && form == 'signup') {
        controller('aftersignup',85);
    } else if (comment == 'yes' && lang == 'EN' && newsletter == 'no' && form == 'signup') {
        controller('aftersignup',107);
    } else if (comment == 'no' && lang == 'EN' && newsletter == 'no' && form == 'signup') {
        controller('aftersignup',107);
    } else if (comment == 'yes' && lang == 'BR' && form == 'signup') {
        controller('aftersignup',86);
    } else if (comment == 'no' && lang == 'BR' && form == 'signup') {
        controller('aftersignup',87);
    } else if (form == 'courses') {
        controller('courses',106);
    }
       
}   

function processContact() {
    var options = {
                success:    processReturnedContactXML, // the callback function
                dataType:   'xml'  
                }; // options
    
    $("#signup_form").validate({
        submitHandler: function(form) {
            $(form).ajaxSubmit(options);
        }
    });

    $("#courses_form").validate({
        submitHandler: function(form) {
            $(form).ajaxSubmit(options);
        }
    });    
}