function getPageSize(){

    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {	
        xScroll = window.innerWidth + window.scrollMaxX;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;

    //	console.log(self.innerWidth);
    //	console.log(document.documentElement.clientWidth);

    if (self.innerHeight) {	// all except Explorer
    if(document.documentElement.clientWidth){
	    windowWidth = document.documentElement.clientWidth; 
    } else {
	    windowWidth = self.innerWidth;
    }
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }	

    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else { 
        pageHeight = yScroll;
    }

    //	console.log("xScroll " + xScroll)
    //	console.log("windowWidth " + windowWidth)

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){	
        pageWidth = xScroll;		
    } else {
        pageWidth = windowWidth;
    }
    //	console.log("pageWidth " + pageWidth)

    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
    return arrayPageSize;
}
function Set_Cookie( name, value, expires, path, domain, secure ) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );

    /*
    if the expires variable is set, make the correct 
    expires time, the current script below will set 
    it for x number of days, to make it for hours, 
    delete * 24, for minutes, delete * 60 * 24
    */
    if ( expires ) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
        ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
        ( ( path ) ? ";path=" + path : "" ) + 
        ( ( domain ) ? ";domain=" + domain : "" ) +
        ( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( check_name ) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split( ';' );
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f
	
    for ( i = 0; i < a_all_cookies.length; i++ ){
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split( '=' );
        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
    	
        // if the extracted name matches passed check_name
        if ( cookie_name == check_name ) {
	        b_cookie_found = true;
	        cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
	        return cookie_value;
	        break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if ( !b_cookie_found ) {
	    return null;
    }
}	

function showPageEdit () {
    document.getElementById('editSiteLinkWrapper').style.display = 'block';
    if(!Get_Cookie('editSiteLink') &&  document.getElementById('editSiteLinkWrapper').getElementsByTagName('div')[0]) {
        //
        var pageDim = getPageSize();
        document.getElementById('editSiteLinkWrapper').className = 'editSiteMotion';
        var editBox = document.getElementById('editSiteLinkWrapper').getElementsByTagName('div')[0];
        var initWidth = 50;
        var initHeight = 20;
        var endWidth = 450;
        var endHeight = 200;
        var initTop = ((pageDim[3]-initHeight)/2);
        var initRight = ((pageDim[2]-initWidth)/2);
        var endTop = ((pageDim[3]-endHeight)/2);
        var endRight = ((pageDim[2]-endWidth)/2);
        
        editBox.style.width = initWidth+'px';
        editBox.style.height = initHeight+'px';
        editBox.style.top = initTop+'px';
        editBox.style.right = initRight+'px';
        editBox.style.fontSize = '30%';
        var t1 = new Tween(editBox.style,'top',Tween.backEaseOut,initTop,endTop,0.5,'px');
        var t2 = new Tween(editBox.style,'right',Tween.backEaseOut,initRight,endRight,0.5,'px');
        var t3 = new Tween(editBox.style,'width',Tween.backEaseOut,initWidth,endWidth,0.5,'px');
        var t4 = new Tween(editBox.style,'height',Tween.backEaseOut,initHeight,endHeight,0.5,'px');
        var t5 = new Tween(editBox.style,'fontSize',Tween.backEaseOut,30,300,0.5,'%');

        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
        setTimeout('moveUp()',1000);
        setTimeout(function () {document.getElementById('editSiteLinkWrapper').className = ''; } ,2000);

        Set_Cookie('editSiteLink','true',2);

   }
}
function moveUp () {
    
    var editBox = document.getElementById('editSiteLinkWrapper').getElementsByTagName('div')[0];
    var pageDim = getPageSize();
    var initWidth = 450;
    var initHeight = 200;
    var initTop = ((pageDim[3]-initHeight)/2);
    var initRight = ((pageDim[2]-initWidth)/2);
    
    var t1 = new Tween(editBox.style,'top',Tween.regularEaseIn,initTop,-1,0.5,'px');
    var t2 = new Tween(editBox.style,'right',Tween.regularEaseIn,initRight,10,0.5,'px');
    var t3 = new Tween(editBox.style,'width',Tween.regularEaseIn,initWidth,155,0.5,'px');
    var t4 = new Tween(editBox.style,'height',Tween.regularEaseIn,initHeight,80,0.5,'px');
    var t5 = new Tween(editBox.style,'fontSize',Tween.regularEaseIn,300,100,0.5,'%');
    t1.start();
    t2.start();
    t3.start();
    t4.start();
    t5.start();
}


if(typeof initTimeToReset == 'undefined') 
    var initTimeToReset = '3:0:0';
 
var initHoursToReset = initTimeToReset.split(':')[0];
var initMinutesToReset = initTimeToReset.split(':')[1];
var initSecondsToReset = initTimeToReset.split(':')[2];
 
var initTime = new Date();
var resetTime = new Date();
 
resetTime.setHours(initTime.getHours() + parseInt(initHoursToReset));
resetTime.setMinutes(initTime.getMinutes() + parseInt(initMinutesToReset));
resetTime.setSeconds(initTime.getSeconds() + parseInt(initSecondsToReset));
 
function resetTiming () {
    if(document.getElementById('timeLeftToReset') != null) {
        initTime = new Date();
        if( resetTime < initTime ) {
            resetTime = new Date();
            resetTime.setHours(initTime.getHours() + parseInt(3));
            Set_Cookie('resetAlert','false');
            window.location = 'http://demo.sitefinity.com';
        }

        var ts = Math.floor((resetTime - initTime)/(1000));
        var tt= Math.floor(ts/60);
        var t = '';
        if(tt < 60) {
            t = tt + ' minute';
            if( tt == 0 ) {
                if(ts < 61 && ts > 49)
                    alert("Demo will be reset in " +ts+ " seconds!");
            } else if( tt == 1 ) {
                //if(ts < 61 && ts > 49)
                    //alert("Demo will be reset in " +tt+ " minutes!");
            } else {
                t += 's';
                if( tt <= 5 && (!Get_Cookie('resetAlert') || Get_Cookie('resetAlert') != 'true' ) ) {
                    alert("Demo will be reset in " +tt+ " minutes!");
                    Set_Cookie('resetAlert','true');
                }
            }
        } else {
            h = Math.floor(tt/60);
            m = Math.floor(tt%60);
            t = h + ' hour';
            if(h > 1) 
                t += 's';
            t += ' ' + m + ' minute';
            if(m > 1) 
                t += 's';
        }
        //alert(ts);
        document.getElementById('timeLeftToReset').innerHTML = t;
        setTimeout('resetTiming ()',10000);
    }   

}

 
showPageEdit();
resetTiming ();