var editorActive;
var ShowID;
try{
	jQuery(document).ready(function(){
		
		//disable anchor tags with the disabled attribute set to disabled since 
		//I don't feel like messing with the code and IE supports the disabled
		//property but all standards compliant browsers don't.
		//jQuery("a[disabled='disabled']").css("color","gray");
	});
	
}
catch(err)
{
	//do nothing as we don't care, jQuery is obviously not included on this page and rightfully so.
}
function onRequestStart(sender, arguments)
{

}
function onResponseEnd(sender, arguments)
{
    
}
//realpostback

function realPostBack(eventTarget, eventArgument)
{
		__doPostBack(eventTarget, eventArgument);
}

//functions for client side expansion of the tree view

//			var expanded = false;
//			function togleAllTreeNodes(tree){
//				tree.UpdateState();
//				var idx=0;
//				for (idx=0; idx<tree.AllNodes.length; idx++){
//					if (tree.AllNodes[idx].Nodes != null)
//					{
//						if (expanded == false){
//							tree.AllNodes[idx].Expand();
//						}else{
//							tree.AllNodes[idx].Collapse();
//						}
//					}
//				}
//				if (expanded == false) {
//					document.all.qc_expander.innerHTML = '[Collapse All Nodes]';
//				}else{
//					document.all.qc_expander.innerHTML = '[Expand All Nodes]';
//				}
//				expanded = !expanded;
//			}

//-------- Disable submit buttons on click ---------

function DisableButton(btnName){
    if(document.getElementById(btnName))
        document.getElementById(btnName).disabled = true;
}

function DisableOneButton(btnName){
	if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()){
		DisableButton(btnName);
                if (typeof(RadEditorGlobalArray) == "undefined") return;
                var closureFun = function(editor, html)
                {
                    window.setTimeout( function() { editor.SetHtml(html); }, 0 );
                };
                for (var i=0; i < RadEditorGlobalArray.length; i++)
                {
                    var html = RadEditorGlobalArray[i].GetHtml();
                    closureFun(RadEditorGlobalArray[i], html);
                }
		return true;
	} else {
		return false;
	}
}

function DisableTwoButtons(btnSubmit, btnCancel){
	if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()){
		DisableButton(btnSubmit);
		DisableButton(btnCancel);
                if (typeof(RadEditorGlobalArray) == "undefined") return;
                var closureFun = function(editor, html)
                {
                    window.setTimeout( function() { editor.SetHtml(html); }, 0 );
                };
                for (var i=0; i < RadEditorGlobalArray.length; i++)
                {
                    var html = RadEditorGlobalArray[i].GetHtml();
                    closureFun(RadEditorGlobalArray[i], html);
                }
		return true;
	} else {
		return false;
	}
}

function DisableThreeButtons(btnSubmit, btnCancel, btnExtra){ //, strScript){
	if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()){
		DisableButton(btnSubmit);
		DisableButton(btnCancel);
		DisableButton(btnExtra);
                if (typeof(RadEditorGlobalArray) == "undefined") return;
                var closureFun = function(editor, html)
                {
                    window.setTimeout( function() { editor.SetHtml(html); }, 0 );
                };
                for (var i=0; i < RadEditorGlobalArray.length; i++)
                {
                    var html = RadEditorGlobalArray[i].GetHtml();
                    closureFun(RadEditorGlobalArray[i], html);
                }
		return true;
	} else {
		return false;
	}
}
function DisableFourButtons(btnSubmit, btnCancel, btnExtra1, btnExtra2){
	if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()){
		DisableButton(btnSubmit);
		DisableButton(btnCancel);
		DisableButton(btnExtra1);
		DisableButton(btnExtra2);
/*		setTimeout('DisableButton("' + btnSubmit + '")',200); //small delay to prevent IE JS error
		setTimeout('DisableButton("' + btnCancel + '")',200);
		setTimeout('DisableButton("' + btnExtra1 + '")',200);
		setTimeout('DisableButton("' + btnExtra2 + '")',200);*/
                if (typeof(RadEditorGlobalArray) == "undefined") return;
                var closureFun = function(editor, html)
                {
                    window.setTimeout( function() { editor.SetHtml(html); }, 0 );
                };
                for (var i=0; i < RadEditorGlobalArray.length; i++)
                {
                    var html = RadEditorGlobalArray[i].GetHtml();
                    closureFun(RadEditorGlobalArray[i], html);
                }
		return true;
	} else {
		return false;
	}
}
function LoadTemplate(intTemplateID){
    qtiContent.QContentScriptService.ReturnContentTemplate(intTemplateID, LoadTemplate_OnSucceeded, LoadTemplate_OnFailed);
}
function LoadTemplate_OnFailed(error, userContext, methodName){
    alert('There was an error retrieving this template.');
}
function LoadTemplate_OnSucceeded(result, userContext, methodName){
    document.getElementById('dialogControl_T').innerHTML = result;
    document.getElementById('dialogControl_H').value = result;
}

/* Track changes */
function ToggleContentChangesOrientation(isVer){
    var h;
    if(isVer==true){
        document.getElementById('dialogControl_E').style.overflow = "scroll";
        document.getElementById('dialogControl_O').style.width = "";
        document.getElementById('dialogControl_O').style.height = "";
        document.getElementById('dialogControl_O').style.overflow = "";
        document.getElementById('dialogControl_Z').style.width = "";
        document.getElementById('dialogControl_Z').style.height = "";
        document.getElementById('dialogControl_Z').style.overflow = "";
        if (document.all) {
            document.getElementById('dialogControl_ZF').style.styleFloat = "";
            document.getElementById('dialogControl_OF').style.styleFloat = "";
        } else {
            document.getElementById('dialogControl_ZF').style.cssFloat = "";
            document.getElementById('dialogControl_OF').style.cssFloat = "";
        }
    } else {
        h = getRadWindow().get_height() - 126 + 'px';
        document.getElementById('dialogControl_E').style.overflow = "hidden";
        document.getElementById('dialogControl_Z').style.width = "392px";
        document.getElementById('dialogControl_Z').style.height = h;
        document.getElementById('dialogControl_Z').style.overflow = "scroll";
        document.getElementById('dialogControl_O').style.width = "392px";
        document.getElementById('dialogControl_O').style.height = h;
        document.getElementById('dialogControl_O').style.overflow = "scroll";
        if (document.all) {
            document.getElementById('dialogControl_OF').style.styleFloat = "left";
            document.getElementById('dialogControl_OF').style.margin = "0 2px 2px 2px";
            document.getElementById('dialogControl_OF').style.padding = "2px";
            document.getElementById('dialogControl_ZF').style.styleFloat = "left";
            document.getElementById('dialogControl_ZF').style.margin = "2px";
            document.getElementById('dialogControl_ZF').style.padding = "0 2px 2px 2px";
            var ver = navigator.appVersion.split("MSIE");
            var ieVer = parseInt(ver[1]);
            if ((ieVer < 7)?1:0) {
                document.getElementById('dialogControl_Z').style.width = "386px";
                document.getElementById('dialogControl_O').style.width = "386px";
            }
        } else {
            document.getElementById('dialogControl_ZF').style.cssFloat = "left";
            document.getElementById('dialogControl_ZF').style.padding = "2px";
            document.getElementById('dialogControl_OF').style.cssFloat = "left";
            document.getElementById('dialogControl_OF').style.padding = "2px";
        }
    }
}
function LoadContentChanges(content,id,lang,status,date,user){
    qtiContent.QContentScriptService.ReturnContentChanges(content,id,lang,status,date,user,LoadContentChanges_OnSucceeded,LoadContentChanges_OnFailed);
}
function LoadContentChanges_OnFailed(error, userContext, methodName){
    alert('There was an error retrieving the changed content.');
}
function LoadContentChanges_OnSucceeded(result, userContext, methodName){
    if(result) {
        document.getElementById('dialogControl_O').innerHTML = result[0];
        document.getElementById('dialogControl_Z').innerHTML = result[1];
    } else {
        document.getElementById('dialogControl_O').innerHTML = '<div style="font:12px Verdana">N/A</div>';
        document.getElementById('dialogControl_Z').innerHTML = document.getElementById('dialogControl_O').innerHTML;
    }
}
function LoadTrackChangesInitial(){
    var radWin = getRadWindow();
    document.getElementById('dialogControl_E').style.overflow = "scroll";
    document.getElementById('dialogControl_E').style.height = getRadWindow().get_height() - 105 + 'px';
    LoadTrackChangesStatus(radWin.BrowserWindow.contentID,radWin.BrowserWindow.languageID,radWin.BrowserWindow.user);
    ToggleContentChangesOrientation(false);
}
function LoadTrackChangesStatus(id,lang,user){
    qtiContent.QContentScriptService.ReturnContentInstanceDropDownOptions(id,lang,user,LoadTrackChangesStatus_OnSucceeded,LoadTrackChangesStatus_OnFailed);
}
function LoadTrackChangesStatus_OnFailed(error, userContext, methodName){
    TrackChangesSetStatusFail();
}
function LoadTrackChangesStatus_OnSucceeded(result, userContext, methodName){
    var i;
    var optn;
    document.getElementById('dialogControl_L').options.length = 0;
    if (result) {
        for(i=0; i < result.length; i=i+2) {
            optn = document.createElement("OPTION");
            optn.text = result[i];
            optn.value = result[i+1];
            document.getElementById('dialogControl_L').options.add(optn);
        }
        TrackChangesStatusChanged();
    } else {
        TrackChangesSetStatusFail();
    }
}
function TrackChangesSetStatusFail(msg){
    var optn = document.createElement("OPTION");
    optn.text = 'N/A';
    optn.value = "0,0,0,";
    document.getElementById('dialogControl_L').options.add(optn);
	alert('There was an error retrieving a list of content to compare.');
}
function TrackChangesStatusChanged(){
    var content = document.getElementById('dialogControl_L').value.split(",");
    var radWin = getRadWindow();
    if(content[2] == -1){
        document.getElementById('dialogControl_O').innerHTML = '<div style="font:12px Verdana">N/A</div>';
        document.getElementById('dialogControl_Z').innerHTML = document.getElementById('dialogControl_O').innerHTML;
    } else {
        document.getElementById('dialogControl_I').value = content[0];
        document.getElementById('dialogControl_S').value = content[2];
        document.getElementById('dialogControl_D').value = content[3];
    }
    LoadContentChanges(radWin.BrowserWindow.$find(radWin.ClientParameters).get_html(false),document.getElementById('dialogControl_I').value,radWin.BrowserWindow.languageID,document.getElementById('dialogControl_S').value,document.getElementById('dialogControl_D').value,radWin.BrowserWindow.user);
}
function addUploadFields(radUpload, args) {
    var inputRow = args.get_row();
    var label, input;
    var firstInput = inputRow.getElementsByTagName("input")[0];
    var uList = document.createElement("ul");
    uList.className = 'ruInputs';
    uList.style.margin = '5px 0 0 20px';
    newRow = document.createElement("li");
    uList.appendChild(newRow);
    label = CreateUploadLabel("File title:");
    input = CreateUploadInput("RadUploadInputFieldTitle", "text");
    input.className = "TextField";
    input.id = input.name = radUpload.getID(input.name);
    newRow.appendChild(label);
    newRow.appendChild(input);
    newRow = document.createElement("li");
    uList.appendChild(newRow);
    label = CreateUploadLabel("File description:");
    input = CreateUploadInput("RadUploadInputFieldDescription", "text");
    input.className = "TextField";
    input.id = input.name = radUpload.getID(input.name);
    newRow.appendChild(label);
    newRow.appendChild(input);
    newRow = document.createElement("li");
    uList.appendChild(newRow);
    label = CreateUploadLabel("File keywords:");
    input = CreateUploadInput("RadUploadInputFieldKeywords", "text");
    input.className = "TextField";
    input.id = input.name = radUpload.getID(input.name);
    newRow.appendChild(label);
    newRow.appendChild(input);
    newRow = document.createElement("li");
    newRow.style.marginLeft = '-25px';
    newRow.style.lineHeight = '1px';
    newRow.style.fontSize = '0';
    newRow.style.borderTop = '1px solid black';
    newRow.style.width = '518px';
    uList.appendChild(newRow);
    var uploadField = inputRow.childNodes[1];
    label = CreateUploadLabel("File to upload:");
    label.style.lineHeight = '22px';
    label.style.verticalAlign = 'top';
    inputRow.insertBefore(label, uploadField);
    inputRow.appendChild(uList);
}
function CreateUploadLabel(text) {
    var label = document.createElement("span");
    label.innerHTML = text;
    label.style.fontSize = 12;
    label.style.display = 'inline-block';
    label.style.left = '25px';
    label.style.width = '100px';
    return label;
}
function CreateUploadInput(inputName, type) {
    var input = document.createElement("input");
    input.type = type;
    input.name = inputName;
    input.style.width = '315px';
    return input;
}
function ValidateFiles(uploadClientID, saveClientID, cancelClientID) { // this function does not work properly in FF.
  var file;
  var fileInputs;
  var uploadCtl = $find(uploadClientID);
  if (uploadCtl) {
    fileInputs = uploadCtl.getFileInputs();
    for (var i=0; i<fileInputs.length; i+=5) {
        file = fileInputs[i].value.replace(/ /g,'_').toLowerCase();
        if (file.length < 1) {
            alert('Invalid file specified.');
            return false;
        } else {
            file = file.substring(file.lastIndexOf('\\') + 1, file.length);
            for (var j=0; j<arrFile.length; j++) {
                if (arrFile[j].toLowerCase() == file) {
                    if (! confirm('The file \'' + file + '\' exists. Do you wish to overwrite this file?')) {
                        return false;
                    }
                }
            }
        }
    }
  }
  //DisableTwoButtons(saveClientID, cancelClientID); //I don't work because of quirky Telerik/Ajax timing :(
  setTimeout(function() { DisableTwoButtons(saveClientID, cancelClientID); },250); //Hack to previous line that works for now
  return true;
}
function TreeContextClientClick(sender, eventArgs){
    var item = eventArgs.get_menuItem();
    var node = eventArgs.get_node();
    var strText;
    if ((item.get_text() == "Rename") && (node.get_value() != node.get_treeView().get_nodes().getNode(0).get_value())) {
        if(ShowID) {
            strText = node.get_text();
            strText = strText.substring(0,strText.lastIndexOf(' ('));
            node.set_text(strText);
        }
        node.startEdit();
        node.get_contextMenu().hide();
        eventArgs.set_cancel(true);
    }
}
function TreeClientNodeClicking(sender, eventArgs)
{
    var node = eventArgs.get_node();
    var strText;
    if(ShowID && node.get_selected()) {
        strText = node.get_text();
        strText = strText.substring(0,strText.lastIndexOf(' ('));
        node.set_text(strText);
    }
}
function LinkPickerTabSelecting(sender, eventArgs) {
    var tab = eventArgs.get_tab();
    var tabstrip = tab.get_tabStrip();
    tabstrip.remove_tabSelecting(LinkPickerTabSelecting);
    tab.select();
    tabstrip.add_tabSelecting(LinkPickerTabSelecting);
}