function NewWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,toolbar=yes'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function NewWindow(mypage, myname, w, h, scroll, toolbar) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,toolbar='+toolbar
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
function NewDocWindow(mypage, myname, w, h, scroll, toolbar) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,menubar=yes, toolbar='+toolbar
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}



//Show/Hide rollover functions
// Version 1.1, January 31, 2007
var CanDo = document.getElementById ? true : false;
var DocAllMode = document.all ? true : false;
var scrollX = 0;
var scrollY = 0;
var cX = 0;
var cY = 0;

function UpdateCursorPosition(e) {
cX = e.pageX; cY = e.pageY;
}

function UpdateCursorPositionDocAll(e) {
cX = event.clientX; cY = event.clientY;
}

if(DocAllMode) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }

function ScrollAmount() {
if(self.pageYOffset) {
   scrollX = self.pageXOffset;
   scrollY = self.pageYOffset;
   }
else if(document.documentElement && document.documentElement.scrollTop) {
   scrollX = document.documentElement.scrollLeft;
   scrollY = document.documentElement.scrollTop;
   }
else if(document.body) {
   scrollX = document.body.scrollLeft;
   scrollY = document.body.scrollTop;
   }
}

function AssignPosition(d) {
if(DocAllMode) { ScrollAmount(); }
d.style.left = (cX+scrollX+10) + "px";
d.style.top = (cY+scrollY+10) + "px";
}

function HideContent(d) {
if(! CanDo) { return; }
document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
if(! CanDo) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
dd.style.display = "block";
}

function ReverseContentDisplay(d) {
if(! CanDo) { return; }
var dd = document.getElementById(d);
if(dd.style.display == "none") {
   AssignPosition(dd);
   dd.style.display = "block";
   }
else { dd.style.display = "none"; }
}


function preLoad() {
    if (!this.support.imageResize) {
        var flashlink = document.createElement("a");
        flashlink.href = "http://get.adobe.com/flashplayer/";
        flashlink.target = "_blank"
        flashlink.appendChild(document.createTextNode("You need the latest Flash Player to upload images"));
        document.getElementById("divFileProgressContainer").appendChild(flashlink);
        return false;
    }
}
function loadFailed() {

}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
    try {
        if (numFilesQueued > 0) {
            this.startResizedUpload(this.getFile(0).ID, 1200, 1200, SWFUpload.RESIZE_ENCODING.JPEG, 90, false);
        }
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadProgress(file, bytesLoaded) {

    try {
        var percent = Math.ceil((bytesLoaded / file.size) * 100);
        var progress = new FileProgress(file, this.customSettings.upload_target);
        progress.setProgress(percent);
        progress.setStatus("Uploading...");
        progress.toggleCancel(true, this);
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadSuccess(file, serverData) {
    try {
        var progress = new FileProgress(file, this.customSettings.upload_target);

        if (serverData.substring(0, 7) === "FILEID:") {
            addImage("thumbnail.php?id=" + serverData.substring(7));

            progress.setStatus("Upload Complete.");
            progress.toggleCancel(false);
        } else {
            addImage("images/error.gif");
            progress.setStatus("Error.");
            progress.toggleCancel(false);
            alert(serverData);

        }


    } catch (ex) {
        this.debug(ex);
    }
}

function uploadComplete(file) {
    try {
        /*  I want the next upload to continue automatically so I'll call startUpload here */
        if (this.getStats().files_queued > 0) {
            this.startResizedUpload(this.getFile(0).ID, 1200, 1200, SWFUpload.RESIZE_ENCODING.JPEG, 90, false);
        } else {
            var progress = new FileProgress(file, this.customSettings.upload_target);
            progress.setComplete();
            progress.setStatus("Image Recieved.");
            progress.toggleCancel(false);
        }
    } catch (ex) {
        this.debug(ex);
    }
}



function uploadError(file, errorCode, message) {
    var imageName = "error.gif";
    var progress;
    try {
        switch (errorCode) {
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
                try {
                    progress = new FileProgress(file, this.customSettings.upload_target);
                    progress.setCancelled();
                    progress.setStatus("Cancelled");
                    progress.toggleCancel(false);
                }
                catch (ex1) {
                    this.debug(ex1);
                }
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                try {
                    progress = new FileProgress(file, this.customSettings.upload_target);
                    progress.setCancelled();
                    progress.setStatus("Stopped");
                    progress.toggleCancel(true);
                }
                catch (ex2) {
                    this.debug(ex2);
                }
            case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
                imageName = "uploadlimit.gif";
                break;
            default:
                alert(message);
                break;
        }

        addImage("images/" + imageName);

    } catch (ex3) {
        this.debug(ex3);
    }

}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
    try {
        if (numFilesQueued > 0) {
            this.startResizedUpload(this.getFile(0).ID, 1200, 1200, SWFUpload.RESIZE_ENCODING.JPEG, 90, false);
            blockSave(true);
        }
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadProgress(file, bytesLoaded) {

    try {
        var percent = Math.ceil((bytesLoaded / file.size) * 100);
        var progress = new FileProgress(file, this.customSettings.upload_target);
        progress.setProgress(percent);
        progress.setStatus("Uploading...");
        progress.toggleCancel(true, this);
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadSuccess(file, serverData) {
    try {
        var progress = new FileProgress(file, this.customSettings.upload_target);

        if (serverData.substring(0, 7) === "FILEID:") {
            //addImage("thumbnail.php?id=" + serverData.substring(7));

            progress.setStatus("Upload Complete.");
            progress.toggleCancel(false);
        } else {
            addImage("images/error.gif");
            progress.setStatus("Error.");
            progress.toggleCancel(false);
        }
        blockSave(false);

    } catch (ex) {
        this.debug(ex);
    }
}

function uploadComplete(file) {
    try {
        /*  I want the next upload to continue automatically so I'll call startUpload here */
        if (this.getStats().files_queued > 0) {
            this.startResizedUpload(this.getFile(0).ID, 1200, 1200, SWFUpload.RESIZE_ENCODING.JPEG, 90, false);
        } else {
            var progress = new FileProgress(file, this.customSettings.upload_target);
            progress.setComplete();
            progress.setStatus("Image Received.");
            progress.toggleCancel(false);
            blockSave(false);
        }
    } catch (ex) {
        this.debug(ex);
    }
}

function uploadError(file, errorCode, message) {
    var imageName = "error.gif";
    var progress;
    try {
        switch (errorCode) {
            case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
                try {
                    progress = new FileProgress(file, this.customSettings.upload_target);
                    progress.setCancelled();
                    progress.setStatus("Cancelled");
                    progress.toggleCancel(false);
                }
                catch (ex1) {
                    this.debug(ex1);
                }
                break;
            case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
                try {
                    progress = new FileProgress(file, this.customSettings.upload_target);
                    progress.setCancelled();
                    progress.setStatus("Stopped");
                    progress.toggleCancel(true);
                }
                catch (ex2) {
                    this.debug(ex2);
                }
            case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
                imageName = "uploadlimit.gif";
                break;
            default:
                alert(message);
                break;
        }
        blockSave(false);
        addImage("images/" + imageName);

    } catch (ex3) {
        this.debug(ex3);
    }

}

function blockSave(doBlock) {
    var savespan = document.getElementById("savewrapper");
    savespan.firstChild.disabled = doBlock;
}


function addImage(src) {
    var newImg = document.createElement("img");
    newImg.style.margin = "5px";

    document.getElementById("thumbnails").appendChild(newImg);
    if (newImg.filters) {
        try {
            newImg.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 0;
        } catch (e) {
            // If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
            newImg.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + 0 + ')';
        }
    } else {
        newImg.style.opacity = 0;
    }

    newImg.onload = function() {
        fadeIn(newImg, 0);
    };
    newImg.src = src;
}

function fadeIn(element, opacity) {
    var reduceOpacityBy = 5;
    var rate = 30; // 15 fps


    if (opacity < 100) {
        opacity += reduceOpacityBy;
        if (opacity > 100) {
            opacity = 100;
        }

        if (element.filters) {
            try {
                element.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opacity;
            } catch (e) {
                // If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
                element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')';
            }
        } else {
            element.style.opacity = opacity / 100;
        }
    }

    if (opacity < 100) {
        setTimeout(function() {
            fadeIn(element, opacity);
        }, rate);
    }
}



/* ******************************************
*	FileProgress Object
*	Control object for displaying file info
* ****************************************** */

function FileProgress(file, targetID) {
    this.fileProgressID = "divFileProgress";

    this.fileProgressWrapper = document.getElementById(this.fileProgressID);
    if (!this.fileProgressWrapper) {
        this.fileProgressWrapper = document.createElement("div");
        this.fileProgressWrapper.className = "progressWrapper";
        this.fileProgressWrapper.id = this.fileProgressID;

        this.fileProgressElement = document.createElement("div");
        this.fileProgressElement.className = "progressContainer";

        var progressCancel = document.createElement("a");
        progressCancel.className = "progressCancel";
        progressCancel.href = "#";
        progressCancel.style.visibility = "hidden";
        progressCancel.appendChild(document.createTextNode(" "));

        var progressText = document.createElement("div");
        progressText.className = "progressName";
        progressText.appendChild(document.createTextNode(file.name));

        var progressBar = document.createElement("div");
        progressBar.className = "progressBarInProgress";

        var progressStatus = document.createElement("div");
        progressStatus.className = "progressBarStatus";
        progressStatus.innerHTML = "&nbsp;";

        this.fileProgressElement.appendChild(progressCancel);
        this.fileProgressElement.appendChild(progressText);
        this.fileProgressElement.appendChild(progressStatus);
        this.fileProgressElement.appendChild(progressBar);

        this.fileProgressWrapper.appendChild(this.fileProgressElement);
        document.getElementById(targetID).appendChild(this.fileProgressWrapper);
       // fadeIn(this.fileProgressWrapper, 0);

    } else {
        this.fileProgressElement = this.fileProgressWrapper.firstChild;
        this.fileProgressElement.childNodes[1].firstChild.nodeValue = file.name;
    }

    this.height = this.fileProgressWrapper.offsetHeight;

}
FileProgress.prototype.setProgress = function(percentage) {
    this.fileProgressElement.className = "progressContainer green";
    this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
    this.fileProgressElement.childNodes[3].style.width = percentage + "%";
};
FileProgress.prototype.setComplete = function() {
    this.fileProgressElement.className = "progressContainer blue";
    this.fileProgressElement.childNodes[3].className = "progressBarComplete";
    this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setError = function() {
    this.fileProgressElement.className = "progressContainer red";
    this.fileProgressElement.childNodes[3].className = "progressBarError";
    this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setCancelled = function() {
    this.fileProgressElement.className = "progressContainer";
    this.fileProgressElement.childNodes[3].className = "progressBarError";
    this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setStatus = function(status) {
    this.fileProgressElement.childNodes[2].innerHTML = status;
};

FileProgress.prototype.toggleCancel = function(show, swfuploadInstance) {
    this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";
    if (swfuploadInstance) {
        var fileID = this.fileProgressID;
        this.fileProgressElement.childNodes[0].onclick = function() {
            swfuploadInstance.cancelUpload(fileID);
            return false;
        };
    }
};

function loadUpload(id) {
											    var swfu;
											    var qrid = id;
											    
											    /* window.onload = function() {*/
											    swfu = new SWFUpload({
											        // Backend Settings
											        upload_url: "upload_image.aspx",
											        post_params: { "id": qrid },

											        // File Upload Settings
											        file_size_limit: "10 MB",
											        file_types: "*.jpg",
											        file_types_description: "JPG Images",
											        file_upload_limit: 1,

											        // Event Handler Settings - these functions as defined in Handlers.js
											        //  The handlers are not part of SWFUpload but are part of my website and control how
											        //  my website reacts to the SWFUpload events.
											        swfupload_preload_handler: preLoad,
											        swfupload_load_failed_handler: loadFailed,
											     	file_dialog_complete_handler: fileDialogComplete,
											        upload_progress_handler: uploadProgress,
											        upload_error_handler: uploadError,
											        upload_success_handler: uploadSuccess,
											        upload_complete_handler: uploadComplete,

											        // Button Settings
											        button_image_url: "/includes/swfupload/button-image.png",
											        button_placeholder_id: "spanButtonPlaceholder",
											        button_width: 180,
											        button_height: 18,
											        button_text: '<span class="button">Select Image</span>',
											        button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 12pt; } .buttonSmall { font-size: 10pt; }',
											        button_text_top_padding: 0,
											        button_text_left_padding: 18,
											        button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
											        button_cursor: SWFUpload.CURSOR.HAND,

											        // Flash Settings
											        flash_url: "/includes/swfupload/swfupload.swf",
											        /*flash9_url : "../swfupload/swfupload_fp9.swf",*/

											        custom_settings: {
											            upload_target: "divFileProgressContainer"
											        },

											        // Debug Settings
											        debug: false
											    });
											    /* };*/
}
