function createXMLHttpRequest() {
    var ua;

    if(window.XMLHttpRequest) {
        try {
            ua = new XMLHttpRequest();
        } catch(e) {
            ua = false;
        }
    } else if(window.ActiveXObject) {
        try {
            ua = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            ua = false;
        }
    }
    return ua;
}

var req = createXMLHttpRequest();

function sendPhotoReq(photo,cat,orig,limit,sortby,sortdir,sorttime,ppuser) {
        req.open('get', ppmdir+'/showframe.php?action=thumbs&photo='+photo+'&cat='+cat+'&orig='+orig+'&limit='+limit+'&sortby='+sortby+'&sortdir='+sortdir+'&sorttime='+sorttime+'&ppuser='+ppuser);
        req.onreadystatechange = handleResponse;
        req.send(null);
}

function sendFeatReq(feature,ispal,cat,ppuser) {
        req.open('get', ppmdir+'/showframe.php?action=feature&feature='+feature+'&ispal='+ispal+'&cat='+cat+'&ppuser='+ppuser);
        req.onreadystatechange = handleResponse;
        req.send(null);
}

function sendCalReq(month,year) {
        req.open('get', ppmdir+'/showframe.php?action=cal&month='+month+'&year='+year);
        req.onreadystatechange = handleResponse;
        req.send(null);
}

function sendInfoReq(what,photo) {
        req.open('get', ppmdir+'/showframe.php?action='+what+'&photo='+photo);
        req.onreadystatechange = handleResponse;
        req.send(null);
}

//function sendComsReq(photo,page) {
//        req.open('get', ppmdir+'/showframe.php?action=comments&photo='+photo+'&cpage='+page);
//        req.onreadystatechange = handleResponse;
//        req.send(null);
//}

function sendComsReq(photo,page) {
new Ajax.Updater( {success:'morecomments'},ppmdir+'/showframe.php',{method: 'get', parameters: 'action=comments&photo='+photo+'&cpage='+page,evalscripts:true} );
}


function sendDelReq(what,photo) {
	var answer = confirm("Delete comment #"+photo+"?")
	if (answer){
        req.open('get', ppmdir+'/showframe.php?action='+what+'&photo='+photo);
        req.onreadystatechange = handleDelResponse;
        req.send(null);
	}
}

function handleResponse() {
    if(req.readyState == 4){
        var response = req.responseText;
        var update = new Array();

        if(response.indexOf('||' != -1)) {
            update = response.split('||');
            document.getElementById(update[0]).innerHTML = update[1];
        }
    }
}

function handleDelResponse() {
    if(req.readyState == 4){
        var response = req.responseText;
        var update = new Array();

        if(response.indexOf('||' != -1)) {
            update = response.split('||');
            var tr=document.getElementById(update[0]);
            tr.parentNode.removeChild(tr);
        }
    }
}

function handleAddResponse() {
    if(req.readyState == 4){
        var response = req.responseText;
        var update = new Array();

        if(response.indexOf('||' != -1)) {
            update = response.split('||');
            document.getElementById(update[0]).innerHTML += update[1];
        }
    }
}


function showcodes(){
    document.getElementById('showcodes').style.display='';
}

var status;

function submitRating(evt) {
    var tmp = Event.element(evt).getAttribute('id').substr(5);
    var photo = tmp.substr(0, tmp.indexOf('_'));
    var rating = tmp.substr(tmp.indexOf('_')+1);

    req.open('get', ppmdir+'/showframe.php?action=rate&photo='+photo+'&rating='+rating);
    req.onreadystatechange = handleResponse;
    req.send(null);
}

function init_starRating() {
    var ratings = $$('div');

        ratings.each(function(i) {
            if (i.className    != 'rating') return;

            // innerHTML was a convenience property introduced by Microsoft as a means of reading and writing the HTML content of an element
            // a) innerHTML is at least 200% slower on all 6 browsers tested (Firefox, Netscape 6+, Internet Explorer 6+, Opera 7+, Safari 2, Seamonkey 1) than modifying the nodeValue and
            // b) innerHTML is NOT a World Wide Web Consortium web standard DOM 1 attribute.
            var rating = i.firstChild.nodeValue;

            i.removeChild(i.firstChild);
        var photoId = i.identify().substr(7);

            if (rating > 10 || rating < 0) return;

            $R(1, 10).each(function(j) {
                var star = new Element('img');

                if (rating >= 1) {
                    star.setAttribute('src', ppidir+'/rating_on.gif');
                    star.className = 'on';
                    rating--;
            } else if(rating == 0.5) {
                    star.setAttribute('src', ppidir+'/rating_half.gif');
                    star.className = 'half';
                    rating = 0;
                } else {
                    star.className = 'off';
                    star.setAttribute('src', ppidir+'/rating_off.gif');
          }

          star.writeAttribute('id', 'star_'+photoId+'_'+j);
          star.onmouseover = new Function("evt", "displayHover("+photoId+", "+j+");");
          star.onmouseout = new Function("evt", "displayNormal("+photoId+", "+j+");");
                i.appendChild(star);
            });
    });

    $$('.rating').each(function(n){
        n.immediateDescendants().each(function(c){
            Event.observe(c, 'click', submitRating);
        });
    });
}


function displayHover(ratingId, star) {
    $R(1, star).each(function(i) {
        $('star_'+ratingId+'_'+i).setAttribute('src', ppidir+'/rating_over.gif');
    });
}


function displayNormal(ratingId, star) {
    $R(1, star).each(function(i) {
        status = $('star_'+ratingId+'_'+i).className;
        $('star_'+ratingId+'_'+i).setAttribute('src', ppidir+'/rating_'+status+'.gif');
    });
}


// ShowPhoto - Zoom
var TJPzoomwidth=160;
var TJPzoomheight=120;
var TJPzoomwindowlock=0;
var TJPzoomoffsetx=.5;
var TJPzoomoffsety=.5;
var TJPzoomamount=4;
var TJPzoomamountmax=12;
var TJPzoomamountmin=1;
var TJPborderthick=2;
var TJPbordercolor='#cccccc';
var TJPshadowthick=8;
var TJPshadow=ppmdir+'/js/';

// Help
var PopUpHelpX = (screen.width/2)-150;
var PopUpHelpY = (screen.height/2)-200;
var pos = "left="+PopUpHelpX+",top="+PopUpHelpY;

function PopUpHelp(url){
    PopUpHelpWindow = window.open($ppmdir+'/'+url,"Help","scrollbars=yes,width=550,height=400,"+pos);
}


