
// AJAX VARS 
var xmlHttp;
var elm;



function submitbutton(elm) {
    var button = document.getElementById("submitbutton");
    var form = document.sendForm;
    
    if (form['headline'].value.length > 0 && form['text'].value.length > 0) {
        button.style.color = '#000000';
        button.onclick = function() { document.sendForm.submit(); return false; };
    } 
    else {
        button.style.color = '#B2E0F2';
        button.onclick = function() { return false; };
    }
}

function createUser() {
    
    var crtform = document.getElementById("crtform");
    var message = document.getElementById("message");
    var checkusername = document.getElementById("checkusername");
    var checkname = document.getElementById("checkname");
    var checkemail = document.getElementById("checkemail");
    var checkbetingelser = document.getElementById("checkbetingelser");
    var loader = document.getElementById("loader");
    
    var usernamefield = document.getElementById("usernamefield");
    var emailfield = document.getElementById("emailfield");
    var namefield = document.getElementById("namefield");
    var betingelserfield = document.getElementById("betingelserfield");
    
    var error = false;
    
    checkusername.innerHTML = '';
    checkname.innerHTML = '';
    checkemail.innerHTML = '';
    
    if (usernamefield.value == "") {
        checkusername.innerHTML = '<span class="arial font10 uppercase red">Du skal vælge et brugernavn !</span>';
        error = true;
    } 
    
    if (namefield.value == "") {
        checkname.innerHTML = '<span class="arial font10 uppercase red">Du skal skrive dit navn !</span>';
        error = true;
    }
   
    if (emailfield.value == "") {
        checkemail.innerHTML = '<span class="arial font10 uppercase red">Du skal skrive en e-mail adresse !</span>';
        error = true;
    }
    else {
        if (!echeck(emailfield.value)) {
            checkemail.innerHTML = '<span class="arial font10 uppercase red">Din email adresse er forkert !</span>';
            error = true;
        }
    }
    
    if (!betingelserfield.checked) {
        checkbetingelser.innerHTML = '<span class="arial font10 uppercase red">Du skal acceptere medlems betingelserne !</span>';
        error = true;
    }
    
    if (!error) {
        
        var xmlHttp=GetXmlHttpObject();   
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
                crtform.style.display = "none";
                elm.innerHTML = '<span class="arial font12 uppercase">Din bruger oprettes</span>&nbsp;&nbsp;<img src="' + jspath + 'gfx/ajaxloader.gif" alt="Loading..." />';
            }
            if(xmlHttp.readyState == 4) {
                crtform.style.display = "none";
                message.innerHTML = xmlHttp.responseText;
            }
        }
        
        xmlHttp.open("POST", jspath + "ajax-files/createuser.php?mode=create");
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.send("username=" + escape(usernamefield.value) + '&name=' + escape(namefield.value) + '&email=' + escape(emailfield.value));
    }
    
}

function echeck(str) {

    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var address = str;
    if(reg.test(address) == false) {
        return false;
    }
    else {
        return true;
    }
}



function checkUsername (value) {
    
    var xmlHttp=GetXmlHttpObject();
    
    var elm = document.getElementById("checkusername");
       
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            elm.innerHTML = '<img src="' + jspath + 'gfx/ajaxloader.gif" alt="Loading..." />';
        }
        if(xmlHttp.readyState == 4) {
            
            if (xmlHttp.responseText != "") {
                elm.innerHTML = xmlHttp.responseText;
            }
            else {
                elm.innerHTML = "";
            }
        
        }
    }
    
    xmlHttp.open("POST", jspath + "ajax-files/createuser.php?mode=checkusername");
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("value=" + escape(value));
    
    
}

function search(value, type) {
    
    var xmlHttp=GetXmlHttpObject();
    
    var result = document.getElementById("result");
    var loader = document.getElementById("loader");
    var close = document.getElementById("close");
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            loader.innerHTML = '<img src="' + jspath + 'gfx/ajaxloader.gif" alt="Loading..." />';
        }
        if(xmlHttp.readyState == 4) {
            
            loader.innerHTML = "";
            
            if (xmlHttp.responseText != "") {
                close.style.display = "inline";
                result.style.display = "inline";
                result.innerHTML = xmlHttp.responseText;
            }
            else {
                close.style.display = "none";
                result.style.display = "none";
                result.innerHTML = '';
            }
        
        }
    }
    
    xmlHttp.open("POST", jspath + "ajax-files/search.php?mode=" + type);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("value=" + escape(value));
    
}

function showDiv (id) {
    
    var div = document.getElementById(id);
    if (div.style.display == "none") {
        div.style.display = "inline";
    }
    else {
        div.style.display = "none";
    }
    
}

// Resize textarea
function resizeRows(ta) {
    while(ta.scrollHeight+10<ta.offsetHeight) --ta.rows;
    //document.getElementById("logo").innerHTML = ta.scrollHeight+"..."+ta.offsetHeight;
    while(ta.scrollHeight>ta.offsetHeight) ++ta.rows;
}

function htmlentities(str) {
    var output="",char='';
    var len = str.length;
    for(var i=0;i<len;i++){
        char = str.charCodeAt(i);
        if( char==10 || char==13 || (char>47 && char<58)||(char>62 && char<127) ){
            output += str.charAt(i);
        }else{
            output += "&#" + char + ";";
        }
    }
    return output;
}

// Convert to input
function convertToInput(box,type) {
    var blur = "onblur='ajaxSubmit(this);'";
    charCode = "code = (event.charCode)?event.charCode:((event.which)?event.which:event.keyCode)";
    switch(type) {
        case "string":
            box.innerHTML = "<input type='text' value='"+box.innerHTML+"' "+blur+" onkeypress='"+charCode+";if(code==13) this.blur();'/>";
            break;
        case "text":
            box.innerHTML = "<textarea "+blur+" onkeypress='"+charCode+";if(event.ctrlKey && code==13) this.blur();' onkeyup='resizeRows(this);' onfocus='resizeRows(this);' style='overflow:hidden;'>"+box.innerHTML.replace(/\<BR\>/g,"\n").replace(/\<br\>/g,"\n")+"</textarea>";
            break;
    }
    box.onclick = '';
    box.firstChild.focus();
}

//
function saveComment (theform) {

    var xmlHttp=GetXmlHttpObject();
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            //spanbox.innerHTML = value+" <img src='"+jspath+"gfx/ajaxloader.gif' alt='Loading...'/>";
        }
        if(xmlHttp.readyState == 4) {
            
            var form = document.getElementById("commentform");
            var wrapper = document.getElementById("commentwrapper");
            var commentlink = document.getElementById("commentlink");
            var amount = document.getElementById("amount");
            var count = (amount.innerHTML == '') ? 0 : amount.innerHTML;
            count++;
            var newamount = count;
           
            theform.elements["comment"].value = "";
            form.style.display = "none";
            wrapper.style.display = "inline";
            
            commentlink.innerHTML = '>> Skjul kommentarer (<span id="amount">' + newamount + '</span>)';
            commentlink.onclick = function() { showComments(newamount); return false };
            
            wrapper.innerHTML = xmlHttp.responseText + wrapper.innerHTML;
        
        }
    }
    
    xmlHttp.open("POST", jspath + "ajax-files/saveComment.php");
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("comment=" + escape(theform.elements["comment"].value) + "&dvd_id=" + escape(theform.elements["dvd_id"].value) + "&usr_id=" + escape(theform.elements["usr_id"].value));

}

//
function becomeFan (comedian, id, name) {

    var xmlHttp=GetXmlHttpObject();
   
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            //spanbox.innerHTML = value+" <img src='"+jspath+"gfx/ajaxloader.gif' alt='Loading...'/>";
        }
        if(xmlHttp.readyState == 4) {
            
            var link = document.getElementById("fanlink");
            var linkwrapper = document.getElementById("fanlinkwrapper");
            var crt = document.getElementById("crtlink");
            var amount = document.getElementById("amount");
            var myname = document.getElementById("myname");
            var fanwrapper = document.getElementById("fanwrapper");
            var count = (amount.innerHTML == '') ? 0 : amount.innerHTML;
              
            if (xmlHttp.responseText == '') {
                
                if (count > 1) {
                    count--;
                    amount.innerHTML = count;
                    link.onclick = function() { showFans(count, name); return false; };
                }
                else {
                    linkwrapper.innerHTML = '<div class="arial uppercase font10 bold" style="padding: 5px 0 2px 10px;">>> ' + name + ' har ingen fans her på siden !<span id="amount"></span></div>';
                }
                
                crt.innerHTML = '<span class="arial font10 uppercase bold red">>> Lad mig blive fan af ' + name + '</span>';
                myname.innerHTML = '';
             
            }
            else {
                
                if (amount.innerHTML == "") {
                    linkwrapper.innerHTML = '<ul class="links"><li><a href="" onclick="showFans(\'1\', \'' + name + '\'); return false;" id="fanlink">>> '+ name + ' har <span id="amount"></span> fan(s) - Vis</a></li></ul>'
                    fanwrapper.innerHTML = '<span id="myname">' + xmlHttp.responseText + '</span>';
                }
                else {
                    count = parseFloat(amount.innerHTML);
                    count++
                    link.innerHTML = '>> ' + name + ' har <span id="amount">' + count + '</span> fan(s) - Vis'
                    link.onclick = function() { showFans(count, name); return false; };
                    myname.innerHTML = ', ' + xmlHttp.responseText;
                }
                
                crt.innerHTML = '>> Jeg vil ikke l&aelig;ngere v&aelig;re fan af ' + name;
      
            }
             
        }
    }

    xmlHttp.open("POST", jspath + "ajax-files/becomefan.php");
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("comedian=" + comedian + "&usrid=" + id);

}

// Convert back
function ajaxSubmit(box) {
    spanbox = box.parentNode;
    value = box.value
    spanbox.innerHTML = value;
    
    var xmlHttp=GetXmlHttpObject();
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            spanbox.innerHTML = value+" <img src='"+jspath+"gfx/ajaxloader.gif' alt='Loading...'/>";
        }
        if(xmlHttp.readyState == 4) {
            if(xmlHttp.responseText!=1) {
                // TODO: error!
                // TODO: test this!!!
                spanbox.innerHTML = htmlentities(value).replace(/\n/g,"<br/>");
                spanbox.onclick = function() { convertToInput(this,spanbox.getAttribute("type")); };
                alert(xmlHttp.responseText);
            }else{
                spanbox.innerHTML = htmlentities(value).replace(/\n/g,"<br/>");
                spanbox.onclick = function() { convertToInput(this,spanbox.getAttribute("type")); };
                // TODO: show success
            }
        }
    }
    
    xmlHttp.open("POST",document.location);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("field="+spanbox.id.substr(6)+"&value="+escape(value));
}

// Login!
function submitLogin() {
    var xmlHttp=GetXmlHttpObject();
    
    var loginLoader = document.getElementById("loginLoader");
    
    if (xmlHttp==null) {
        alert ("Your browser does not support AJAX!");
        return;
    }
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            loginLoader.innerHTML = '<img src="' + jspath + 'gfx/loader.gif" style="height:15px;margin: 0 0 0 10px;" alt="Logger ind" />';
        }
        
        if(xmlHttp.readyState == 4) {
            
            loginLoader.innerHTML = '';
            
            if(xmlHttp.responseText == false) {
                document.getElementById("loginErr").innerHTML = '<div class="arial font10 uppercase" style="color: red;">Forkert login</div>';
            }else{
                window.location.reload();
            }
        }
    }
    
    xmlHttp.open("POST","ajax-files/login.php");
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send("loginusername=" + escape(document.getElementById("loginusername").value) + "&loginpassword=" + escape(document.getElementById("loginpassword").value));
}

// AJAX FUNCTIONS
function GetXmlHttpObject() {
    try {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    } catch (e) {
      // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function uploadImage (value, imagepath) {

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Your browser does not support AJAX!");
        return;
    }
    
    xmlHttp.onreadystatechange = function() {
        
        elm = document.getElementById("uploaded");
        elm2 = document.getElementById("msg");
        elm3 = document.getElementById("felt");
        elm4 = document.getElementById("done");
      
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            
            elm3.style.display = 'none';
            
            elm2.style.display = 'inline;'
            elm2.innerHTML = '<div style="padding: 3px 7px 7px 7px;font-weight: bold;"><img src="' + jspath + 'gfx/loader.gif" alt="Loading..." /></div>';
        
        }
        
        if(xmlHttp.readyState == 4) {
            
         
            elm3.style.display = 'inline';
            elm2.style.display = 'none';
            elm.innerHTML = elm.innerHTML + xmlHttp.responseText; 
            
            if (elm.innerHTML.length > 0) {
                elm4.innerHTML = '<div style="padding: 10px 0 0 0;"><input type=\"button\" value=\"Færdig med upload\" onclick=\"location.href=\'billed_liste.php?path=' + imagepath + '\'\"></a></a>'
            }
          
        }
        
    }
    
    xmlHttp.open("POST","../ajax-files/upload.php?value=" + value + "&imagepath=" + imagepath);
    xmlHttp.send(null);
    

}

function uploadProfileImage (value, imagepath, usrid) {

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Your browser does not support AJAX!");
        return;
    }
    
    xmlHttp.onreadystatechange = function() {
        
        var elm2 = document.getElementById("msg");
        var elm3 = document.getElementById("felt");
        var mugshot = document.getElementById("mugshot");
        var uf = document.uploadform;
        
        if (xmlHttp.readyState < 4 && xmlHttp.readyState > 0) {
            
            elm3.style.display = 'none';
            elm2.style.display = 'inline;'
            elm2.innerHTML = '<div style="padding: 3px 7px 7px 7px;font-weight: bold;"><img src="' + jspath + 'gfx/loader.gif" alt="Loading..." /></div>';
        
        }
        
        if(xmlHttp.readyState == 4) {
            elm3.style.display = 'inline';
            elm2.style.display = 'none';
            
            uf['fil'].value = '';
            
            mugshot.innerHTML = '<img src="' + xmlHttp.responseText + '" style="width: 180px;border: 10px solid #C3E7F5;" alt="" />';
        }
        
    }
    
    xmlHttp.open("POST","../ajax-files/upload.php?value=" + value + "&imagepath=" + imagepath + "&usrid=" + usrid);
    xmlHttp.send(null);
    

}


function rename_file (go, id, path, file, ext, folderpath) {
    
    var elm = document.getElementById("item" + id);
    
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
        alert ("Your browser does not support AJAX!");
        return;
    }
    
    xmlHttp.onreadystatechange = function() {
        
        if(xmlHttp.readyState == 4) {
         
            elm.innerHTML = path + file + '.' + ext;
               
        }
        
    }
    
    if (go) {
        
        alert(folderpath);
        
            xmlHttp.open("POST","../ajax-files/rename_file.php?path=" + path + "&file=" + file + "&ext=" + ext + "folderpath=" + folderpath);
            xmlHttp.send(null); 
    
    }
    else {
    
        
        
        elm.innerHTML = "";
        elm.innerHTML = elm.innerHTML + '<form name="myForm">';
        elm.innerHTML = elm.innerHTML + '<input type="hidden" value="' + path + '" name="path">';
        elm.innerHTML = elm.innerHTML + '<input type="hidden" value="' + ext + '" name="ext">';
        elm.innerHTML = elm.innerHTML + '<input type="hidden" value="' + id + '" name="id">';
        elm.innerHTML = elm.innerHTML + path + '<input type="text" value="'  + file + '" name="textField">.' + ext;
        elm.innerHTML = elm.innerHTML + '<input type="button" value="Omdøb fil" onclick="rename_file(true, ' + id + ', \'' + path +'\', \'' + file + '\', \'' + ext + '\', \'' + document.getElementById("textField").value + '\')">';
        elm.innerHTML = elm.innerHTML + "</form>";
    
    }
}