 
function pageWidth() {
	return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}
	
function centerDivHorizontal(divId){
   	var div = $(divId);
    	var newLeft = (pageWidth() - div.offsetWidth) / 2;
    	div.style.left = newLeft + "px";
}

function pageHeight() {
	return  window.innerHeight != null ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null;
}

function centerDivVertical(divId){
	var div = $(divId);
 	var newTop = document.documentElement.scrollTop + ((pageHeight() - div.offsetHeight) / 2 ); 
 	div.style.top = newTop + "px";
}


function setContent() {
	centerDivVertical("backBox");
	centerDivHorizontal("backBox");
} 
 
 
window.onresize = function() {
	setContent();
}

window.onload = function() {
	setContent();
	new Draggable("backBox", {});
}

function search(searchId){
        searchElement = document.getElementById(searchId);
        tm_site = "www.tinymarbles.org";
        window.open("http://www.google.com/search?q="+searchElement.value+" site:"+tm_site+"&hl=en");
        searchElement.value="search the website";
}

function downloadItemListener(elementName){
        element = document.getElementById(elementName);
        if(element.style.display=="" || element.style.display=="none"){
                element.style.display="block";
        }else{
                element.style.display="none";
        }
}

function restoreDefaultValue(obj){
        if(obj.value==""){
                obj.value="search the website";
        }
}

function showForm(){
        form = $('backBox');
        if(form.style.display=="" || form.style.display=="none"){
                form.style.display="block";
		setContent();
        }else{
                hideForm();
        }
}

function sendEmail(){
        valid = validate();
        if(valid){
                url = "/sendEmail.php";
                pars = "author=" + $F('author') + "&comment=" + $F('form_comment') + "&from=" + $F('from');
                var myAjax = new Ajax.Request(url,{
                        method: 'post', 
                        parameters: pars, 
                        onComplete: sendEmailResponse
                });
        }else{
                //alert('please fill all the fields marked in red');
        }
}

function hideForm(){
        form = $('backBox');        
        form.style.display="none";
        clearErrorsMark();
        $('author').value="";
        $('comment').value="";
        $('from').value="";
        $('homepage').value="";
}


function validate(){
        clearErrorsMark();
        if( $F('author').length == 0 ){
                valid=false;
                $('author').addClassName('error');
                $('message').innerHTML="Please, insert your name.";
                return false;
        }
        if($F('from').length == 0){
                valid=false;
                $('from').addClassName('error');
                $('message').innerHTML="Please, insert an Email address.";
                return false;
        }
        if(!Validate_Email_Address($F('from'))){
                valid=false;
                $('from').addClassName('error');
                $('message').innerHTML="Please, insert a valid Email address.";
                return false;
        }
        if( $F('form_comment').length == 0){
                valid=false;
                $('form_comment').addClassName('error');
                $('message').innerHTML="Please, insert your comment.";
                return false;
        }
        return true;
}

function sendEmailResponse(ajax){
        $('blogForm').innerHTML=ajax.responseText;
}

function hide_reset_Form(){
        $('blogForm').innerHTML="<h2>Please send us comments, questions, criticism:</h2>\n<p id='message'></p>\n<label onmouseover='this.style.cursor=\"move\";'>Name: </label><input id='author'/><br/>\n<label onmouseover='this.style.cursor=\"move\";'>Email: </label><input id='from'/><br/>\n<label class='comment' onmouseover='this.style.cursor=\"move\";'>Comment: </label><textarea id='form_comment' ></textarea><br/>\n<input value='Send' type='button' onClick='sendEmail();' class='button'/>\n<input value='Cancel' type='button' onClick='hideForm();' class='button'/><br/>\n";	

	hideForm();
}


function clearErrorsMark(){
        $('author').removeClassName('error');
        $('comment').removeClassName('error');
        $('from').removeClassName('error');
        $('message').innerHTML="";
}

function Validate_String(string, return_invalid_chars){
         valid_chars = '1234567890-_.^~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
         invalid_chars = '';
         
         if(string == null || string == '')
            return(true);
         for(index = 0; index < string.length; index++)
            {
            char = string.substr(index, 1);                        
            if(valid_chars.indexOf(char) == -1)
              {
              if(invalid_chars.indexOf(char) == -1)
                {
                if(invalid_chars == '')
                   invalid_chars += char;
                else
                   invalid_chars += ', ' + char;
                }
              }
            }                     
         if(return_invalid_chars == true && invalid_chars != '')
           {
           last_comma = invalid_chars.lastIndexOf(',');
           
           if(last_comma != -1)
              invalid_chars = invalid_chars.substr(0, $last_comma) + 
              ' and ' + invalid_chars.substr(last_comma + 1, invalid_chars.length);
                      
           return(invalid_chars);
           }
         else
           return(invalid_chars == ''); 
}


function Validate_Email_Address(email_address){
        at = email_address.indexOf('@');
        dot = email_address.indexOf('.');
        
        if(at == -1 || 
        dot == -1 || 
        dot == 0 || 
        dot == email_address.length - 1)
        return(false);
        
        user_name = email_address.substr(0, at);
        domain_name = email_address.substr(at + 1, email_address.length);                  
        
        if(Validate_String(user_name) === false || 
        Validate_String(domain_name) === false)
        return(false);                     
        
        return(true);
}
