 var CRMUSER_OBJECT 		= 1;
var CONTACT_OBJECT 		= 2;
var LIST_OBJECT 		= 3;
var TEXT_MESSAGE_OBJECT         = 4;

var TEXT_MESSAGE_CRMUSER        = 4.1;
var TEXT_MESSAGE_CONTACT        = 4.2;

var ADDRESS_OBJECT 		= 5;
var PHONE_OBJECT 		= 6;
var EVENT_OBJECT 		= 7;
var MEMBER_OBJECT 		= 8;
var NOTE_OBJECT 		= 9;
var ACCOUNT_OBJECT 		= 10;
var ATTENDED_OBJECT             = 11;
var TEMPLATE_OBJECT             = 13;

var SAVED_QUERY_OBJECT 		= 14;
var EMAIL_OBJECT 		= 15;
var PHONECALL_OBJECT 		= 16;
var OBJECT_OBJECT 		= 17;
var DROPDOWN_OBJECT 		= 18;
var REMOVERULE_OBJECT 		= 19;
var CAMPAIGN_OBJECT 		= 21;
var TWITTER_OBJECT 		= 22;
var TWITTERSTATUS_OBJECT	= 23;
var MESSAGING_OBJECT		= 24;
var FACEBOOKSTATUS_OBJECT	= 25;
var FACEBOOK_MESSAGE_OBJECT	= 26;
var DUPLICATE_RULE_OBJECT	= 27;
var DUPLICATE_RULE_DETAIL_OBJECT= 28;
var FEATURE_OBJECT		= 29;
var OPTION_OBJECT		= 30;
var SESSION_LOG_OBJECT		= 31;
var HELP_VIDEO_OBJECT		= 32;
var FOLLOWUP_LIST_OBJECT	= 33;
var GROUP_OBJECT			= 34;
var EXTERNAL_PHOTO_LANDING_OBJECT 	= 35;
var DATAMAP_OBJECT			= 36;
var DATAMAP_ROW_OBJECT                  = 37;
var FLYER_OBJECT			= 38;
var ERROR_OBJECT			= 39;
var RESPONSE_RULE_OBJECT                = 40;


var MEMBER_LIST                         = 8.3;
var MEMBER_EVENT                        = 8.7;

var NOTE_CONTACT                        = 9.2;
var ATTENDED_CONTACT                    = 11.2;
var ATTACHMENT_OBJECT                   = 12;
var ATTACHMENT_EVENT                    = 12.7;
var EMAIL_CONTACT                       = 15.2;
var PHONECALL_CONTACT                   = 16.2;
var LIST_EVENT                          = 3.7;
var LIST_LIST                           = 3.3;
var LIST_CONTACT                        = 3.2;
var LIST_CAMPAIGN                       = 3.21;

var MEMBER_GROUP                        = 8.34;

var TWITTER_CRMUSER			= 22.1;
var TWITTER_CONTACT			= 22.2;
var MESSAGING_CONTACT			= 24.2;
var FACEBOOK_MESSAGE_CONTACT            = 26.2;
var DATAMAP_ROW_DATAMAP			= 37.36;

var STATUS_ENABLED                      = 1;
var STATUS_DISABLED                     = 2;

var INTEGER                             = "integer";
var VARYING                             = "varying";
var TIMESTAMP                           = "timestamp";
var BOOLEAN                             = "boolean";
var NUMERIC                             = "numeric";
var SELECT                              = "integer";
var DROPDOWN                            = "dropdown";
var KEY                                 = "key";

var TEXT_MESSAGE_OUTBOUND               = 1;
var TEXT_MESSAGE_INBOUND                = 2;

var NOT_SENT                            = 4;

var PARENT_ID;

var is = new Is();


//Query string parsing.  Used to figure out where the request is coming from
function PageQuery(q) {
    if(q.length > 1) {
        this.q = q.substring(1, q.length);
    }
    else this.q = null;
    this.keyValuePairs = new Array();
    if(q) {
        for(var i=0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }
    this.getKeyValuePairs = function() {
        return this.keyValuePairs;
    }
    this.getValue = function(s) {
        for(var j=0; j < this.keyValuePairs.length; j++) {
            if(this.keyValuePairs[j].split("=")[0] == s) {
                return this.keyValuePairs[j].split("=")[1];
            }
        }
        return false;
    }
    this.getParameters = function() {
        var a = new Array(this.getLength());
        for(var j=0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }
    this.getLength = function() {
        return this.keyValuePairs.length;
    }
}
function queryString(key){
    var page = new PageQuery(window.location.search);
    return unescape(page.getValue(key));
//return (page.getValue(key));
}
function displayItem(key){
    return(queryString(key)); 
}//END OF QUERY STRING CODE

function newWindow(url, windowName, width, height) {
	
    var left;
    var top;
	
    if(!height) {
        height = 400;
    }
    if(!width) 	{
        width = 750;
    }
	
    if(is.ie) {
        left = window.screenLeft;
        top = window.screenTop;
    }else {
        left = window.screenX;
        top = window.screenY;
    }
    try {
        window.open(url, windowName, "left="+left+", top="+top+", status=yes, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, height="+height+", width="+width).focus();
    }catch(error) {/*alert(error.description);*/}
}

function newWindowMainScreen(url, windowName) {
    var left;
    var top;
	
    if(is.ie) {
        left = window.screenLeft;
        top = window.screenTop;
    }else {
        left = window.screenX;
        top = window.screenY;
    }
    try {
        window.open(url, windowName, "left="+left+", top="+top+", status=yes, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, height=800, width=1150").focus();		
    }catch(error) {/*alert(error.description);*/}
}

function round(num) {
    var dec = 2;
    var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
    return result;
}
function ClearForm() {

    var inputs      = document.getElementsByTagName("input");
    var selects     = document.getElementsByTagName("select");
    var textareas   = document.getElementsByTagName("textarea");
    
    for(var x = 0; x<inputs.length; x++) {
        var input = inputs[x];
        if(input.type != "button" && input.type != "hidden") {
            input.value = "";
        }
    }
    for(var x = 0; x<selects.length; x++) {
        var select = selects[x];
        select.selectedIndex = -1;
    }
    
    for(var x = 0; x<textareas.length; x++) {
        var textarea = textareas[x];
        textarea.value = "";
    }
}
var ajaxLogin;

function validateUser() {
    
    
    ajaxLogin = getRequestObject();//new ActiveXObject("Microsoft.XMLHTTP");
    var address = "SessionValid";
   
    if(window.INSTANCE_NAME != undefined && !isNull(INSTANCE_NAME)) {
        address = INSTANCE_NAME+"/SessionValid";
    }
    
    sendRequestPostNoFunctionSynchronous(address, null, ajaxLogin);
    if (ajaxLogin.readyState == 4) {   
        if (ajaxLogin.status == 200) { //Successful Request
            var xmlDoc      = getXmlDoc(ajaxLogin.responseText);
            var error = xmlDoc.getElementsByTagName("error")[0];
            if(error != null) {
                return(false);
            }else {
                if(xmlDoc.getElementsByTagName("valid")[0].childNodes[0].nodeValue >= 0) {
                    return(true);
                }else {
                    return(false);
                }
            }
        } else {
            displayStatus("Error AJAX Call to Validate (user) failed.  Could not contact web service: "+ajaxLogin.status+":"+ajaxLogin.responseText, false, true);
        }
    }
}
function validateContact() {
    ajaxCotactLogin = getRequestObject();//new ActiveXObject("Microsoft.XMLHTTP");
    var address = "SessionValid";
    if(window.INSTANCE_NAME != undefined && !isNull(INSTANCE_NAME)) {
        address = INSTANCE_NAME+"/SessionValid";
    }
    var data 	= "method=validatecontact";
    sendRequestPostNoFunctionSynchronous(address, data, ajaxCotactLogin);
    if (ajaxCotactLogin.readyState == 4) {   
        if (ajaxCotactLogin.status == 200) { //Successful Request
            var xmlDoc      = getXmlDoc(ajaxCotactLogin.responseText);
            //alert(ajaxCotactLogin.responseText);
            var error = xmlDoc.getElementsByTagName("error")[0];
            if(error != null) {
                return(false);
            }else {
                return(true)
            }
        } else {
            displayStatus("Error AJAX Call to Validate (contact) failed.  Could not contact web service: "+ajaxCotactLogin.status+":"+ajaxCotactLogin.responseText, false, true);
        }
    }
    
}

function Is() {
    agent = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)));
    this.ns4 = (this.ns && (this.major == 4));
    this.ns6 = (this.ns && (this.major >= 5));
    this.ie = (agent.indexOf("msie") != -1);
    this.ie3 = (this.ie && (this.major < 4));
    this.ie4 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.0") == -1));
    this.ie5 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.0") != -1));
    this.ie55 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.5") != -1));
    this.ie6 = (this.ie && (agent.indexOf("msie 6.0")!=-1) );
}

function getNameValuePairs() {
    //Loop through page and retrieve all input and select tags
    var inputs = document.getElementsByTagName("input");
    var selects = document.getElementsByTagName("select");
    var textareas = document.getElementsByTagName("textarea");
    var checkboxes = document.getElementsByTagName("checkbox");
    var nameValue = "";
    var separator = "~";
    for(var x = 0; x<inputs.length; x++) {
        var input = inputs[x];
        if(input.type == "checkbox") {
            if(input.checked) {
                nameValue +="["+escape(input.name+separator+"true")+"]";
            }else {
                nameValue +="["+escape(input.name+separator+"false")+"]";
            }
        }else {
            if(input.value != "" && input.value != null && input.type != "button") {//Do not include values that are blank
        		
                //Check to see if the input has two siblings.  Date time control
                var numberOfSiblings = input.parentNode.childNodes.length;
                if(document.getElementById(input.id+"time") != null) {
                    var time = document.getElementById(input.id+"time").value;
                    nameValue +="["+escape(input.name+separator+input.value + " " + time)+"]";
                }else {
                    nameValue +="["+escape(input.name+separator+input.value)+"]";
                }
            }
        }
    }
    for(var x = 0; x<selects.length; x++) {
        var select = selects[x];
        //alert("select.multiple: "+select.multiple+" "+select.id);
        if(select.multiple == true && select.name == "members") {
            nameValue +="["+escape(select.name+separator);
            for(var y = 0; y<select.options.length; y++) {
                nameValue += select.options[y].value + ",";
            }
            nameValue = nameValue.substring(0, nameValue.length-1);
            nameValue += "]";
        }else {
            if(select.selectedIndex != -1 ) {//|| select.options[select.selectedIndex].value != ""
                nameValue +="["+escape(select.name+separator+select.options[select.selectedIndex].value)+"]";
            }
        }
    }
    for(var x = 0; x<textareas.length; x++) {
        var textarea = textareas[x];
        var text = textarea.value;
        text = text.replace(/(\r\n|\r\r|\n\n|\n\r)/g, '\n');
        if(textarea.value.length > 0) {
            nameValue +="["+escape(textarea.name+separator+text)+"]";
        }
    }
    return(nameValue);
}
function deleteObject(tr) {
    if(confirm("Please confirm delete request")) {
        //Find guid - list.js
        customerID = getSelectedRows();
        request = getRequestObject();
        var address = "WebService.asmx/DeleteCustomer";
        var data = "customerID="+customerID;
        sendRequestWithData(address, data, deleteResponse, request);    
    }
}
function deleteResponse() {
    if(request.readyState == 4) {
        if(request.status == 200) {
            // ajax.js
            var xmlDoc = getXmlDoc(request.responseText);
            var error = xmlDoc.getElementsByTagName("error")[0];
            if(error != null) {
                alert("executeQuery AJAX call failed: "+error.text);
            }else {
                loadDataGrid();
                alert(xmlDoc.getElementsByTagName("success")[0].text);
            }
        }else {
            alert("Error AJAX Call to Delete Customer failed.  Could not contact web service: "+request.status);
        }
    }	
}

function loadDropdown(name, dropdown, emptyOption, defaultValue, objectId, instructions) {
    
    if(!instructions) {
        instructions = "Select value";
    }
    var dropdownAJAX = getRequestObject();
    var address = "Dropdown";
    var data = "name="+name+"&objectId="+objectId;
    sendRequestPostNoFunction(address, data, dropdownAJAX);
    //clean out dropdown
    while(dropdown.options.length > 0) {
        dropdown.options[0] = null;
    }
    /* 
    if(emptyOption) {
    	dropdown.options[dropdown.options.length] = new Option("", -1);
    }
    */
    dropdown.options[dropdown.options.length] = new Option(instructions, -1);
    
    dropdownAJAX.onreadystatechange = function () {
        if (dropdownAJAX.readyState == 4) {   
            if (dropdownAJAX.status == 200) { //Successful Request
                var xmlDoc      = getXmlDoc(dropdownAJAX.responseText);
                //alert(dropdownAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("GetDropdown AJAX call failed: "+error.text);
                }else {
                    var options = xmlDoc.getElementsByTagName("row");
                    for(var x = 0; x<options.length; x++) {
                        var option  = options[x];
                        var value   = option.getElementsByTagName("value")[0].childNodes[0].nodeValue;
                        var text    = option.getElementsByTagName("text")[0].childNodes[0].nodeValue;
                        dropdown.options[dropdown.options.length] = new Option(text, value);
                    }
                    if(defaultValue != -1) {
                        dropdown.value = defaultValue;
                    } 
                }
                dropdown.setAttribute("loaded", true);
            } else {
                alert("Error AJAX Call to GetDropdown failed.  Could not contact web service: "+dropdownAJAX.status);
            }
        }
    }
}
function loadObjects(dropdown) {
    var dropdownAJAX = getRequestObject();
    var address = "GetObjects";
    sendRequestPostNoFunction(address, null, dropdownAJAX);
    //clean out dropdown
    while(dropdown.options.length > 0) {
        dropdown.options[0] = null;
    } 
    
    dropdown.options[dropdown.options.length] = new Option("", -1);
    
    dropdownAJAX.onreadystatechange = function () {
        if (dropdownAJAX.readyState == 4) {   
            if (dropdownAJAX.status == 200) { //Successful Request
                var xmlDoc      = getXmlDoc(dropdownAJAX.responseText);
                //alert(dropdownAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("GetDropdown AJAX call failed: "+error.text);
                }else {
                    var options = xmlDoc.getElementsByTagName("row");
                    for(var x = 0; x<options.length; x++) {
                        var option  = options[x];
                        var value   = option.getElementsByTagName("objectid")[0].childNodes[0].nodeValue;
                        var text    = option.getElementsByTagName("name")[0].childNodes[0].nodeValue;
                        dropdown.options[dropdown.options.length] = new Option(text, value);
                    }
                }
                dropdown.setAttribute("loaded", true);//This allows the form to know when it can load the object
            } else {
                alert("Error AJAX Call to GetDropdown failed.  Could not contact web service: "+dropdownAJAX.status);
            }
        }
    }
}
function loadTemplates(objectTypeCode, element, templateName) {

    if(!templateName) {
        templateName = "";
    }
	
    var loadTemplatesAJAX = getRequestObject();
    var address = "DataGrid";
    var data = "objectTypeCode="+TEMPLATE_OBJECT+"&advancedSearch=where parentobjecttypecode="+objectTypeCode+"&offset=0";
    sendRequestPostNoFunction(address, data, loadTemplatesAJAX);
    
    element.options[element.options.length] = new Option("Select Template", -1);
   	
    loadTemplatesAJAX.onreadystatechange = function () {
        if (loadTemplatesAJAX.readyState == 4) {   
            if (loadTemplatesAJAX.status == 200) { //Successful Request
                var xmlDoc = getXmlDoc(loadTemplatesAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("loadTemplates AJAX call failed: "+error.childNodes[0].nodeValue);
                }else {
                    var rows = xmlDoc.getElementsByTagName("row");
	                
                    for(var x = 0; x<rows.length; x++) {
                        var row = rows[x];
                        var value   = row.getElementsByTagName("templateid")[0].childNodes[0].nodeValue;
                        var text    = row.getElementsByTagName("name")[0].childNodes[0].nodeValue;
                        element.options[element.options.length] = new Option(text, value);
                        if(templateName && row.getElementsByTagName("name")[0].childNodes[0].nodeValue.toLowerCase() == templateName.toLowerCase()) {
                            element.value = value;
                            element.options[element.selectedIndex].setAttribute("selected", "");
                        }
                    }
                    element.setAttribute("loaded", true);
                }
            } else {
                alert("Error AJAX Call to loadTemplates failed.  Could not contact web service: "+loadTemplatesAJAX.responseText);
            }
        }
    }
}
function loadTemplate(x, target, counter) {
 
    if(!target) {
        target = document.getElementById("message");
    }
	
    if(x.value != -1) {
        var dropdownAJAX = getRequestObject();
        address = "Get";
        var data = "objectTypeCode="+13+"&objectId="+x.value;
		    
        sendRequestPostNoFunction(address, data, dropdownAJAX);
        dropdownAJAX.onreadystatechange = function () {
            if (dropdownAJAX.readyState == 4) {   
                if (dropdownAJAX.status == 200) { //Successful Request
                    var xmlDoc = getXmlDoc(dropdownAJAX.responseText);
                    var error = xmlDoc.getElementsByTagName("error")[0];
                    if(error != null) {
                        alert("GetDropdown AJAX call failed: "+error.text);
                    }else {
                        var row = xmlDoc.getElementsByTagName("row")[0];
                        target.value = row.getElementsByTagName("message")[0].childNodes[0].nodeValue;
                        /*set the appropate message counter to the length*/
                        if(counter) {
                            var span = document.getElementById(counter).getElementsByTagName("span")[1];
                            span.childNodes[0].nodeValue = target.value.length;
                        }
                    }
                } else {
                    alert("Error AJAX Call to GetDropdown failed.  Could not contact web service: "+dropdownAJAX.status);
                }
            }
        }
    }
}

function loadColumns(dropdown, objectTypeCode) {
    var dropdownAJAX = getRequestObject();
    var address = "GetColumns";
    var data = "objectTypeCode="+objectTypeCode;
    sendRequestPostNoFunction(address, data, dropdownAJAX);
    //clean out dropdown
    while(dropdown.options.length > 0) {
        dropdown.options[0] = null;
    } 
    
    dropdownAJAX.onreadystatechange = function () {
        if (dropdownAJAX.readyState == 4) {   
            if (dropdownAJAX.status == 200) { //Successful Request
                var xmlDoc = getXmlDoc(dropdownAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("Get Columns AJAX call failed: "+error.text);
                }else {
                    dropdown.options[dropdown.options.length] = new Option("", -1);
                    var options = xmlDoc.getElementsByTagName("row");
                    for(var x = 0; x<options.length; x++) {
                        var option  = options[x];
                        var value   = option.getElementsByTagName("value")[0].childNodes[0].nodeValue;
                        var text    = option.getElementsByTagName("text")[0].childNodes[0].nodeValue;
                        dropdown.options[dropdown.options.length] = new Option(text, value);
                    }
                }
            } else {
                alert("Error AJAX Call to GetColumns failed.  Could not contact web service: "+dropdownAJAX.status);
            }
        }
    }
}

function overDiv(div) {
    div.className = "navItemOver";
}
function outDiv(div) {
    div.className = "navItem";
}

function mouseover(div) {
    div.style.backgroundColor = "#edf1d5";
    div.style.cursor="pointer";
}
function mouseout(div) {
    div.style.backgroundColor ="";
}

function validateForm() {
	
    var inputs = document.getElementsByTagName("input");
    for(var x = 0; x<inputs.length; x++) {
        var input = inputs[x];
        if(input.req == 2 && (input.value == ""  ) ) {//Field is required
            alert("You must provide a value for "+document.getElementById(input.id+"_c").childNodes[0].nodeValue);
            input.focus();
            return(false);
        }
    }
}

function openRegardingLookup(textId, objectId, parentObjectTypeCode) {
    var url = "";
    var left = window.screenLeft;
    var top = window.screenTop;
	
    if(is.ie) {
        left = window.screenLeft;
        top = window.screenTop;
    }else {
        left = window.screenX;
        top = window.screenY;
    }
	
    if(parentObjectTypeCode != "false") {
        url = "regardingLookup.htm?textId="+textId+"&objectId="+objectId+"&parentObjectTypeCode="+parentObjectTypeCode;
    } else {
        url = "regardingLookup.htm?textId="+textId+"&objectId="+objectId;
    }
    window.open(url, "regardingLookup", "left="+left+", top="+top+", status=yes, toobar=no, menubar=no, scrollbars=yes, resizable=yes, height=250, width=350").focus();
}

<!-- NAVIGATION -->
function navigation(location, parentObjectTypeCode, objectTypeCode, objectId) {
    /*
	alert(parentObjectTypeCode);
	alert(objectTypeCode);
	alert(objectId);
	*/
    //Hide all tables that are siblings to the content table
    var menuTable = location.parentNode.parentNode;
    var tdArray = menuTable.getElementsByTagName("td");
    for(var x = 0; x<tdArray.length; x++) {
        tdArray[x].className = "navItem";
        tdArray[x].onmouseout = function() {
            this.className='navItem';
        }
    }
    location.className = "navItemOver";
    location.onmouseout = function() {
        this.className='navItemOver';
    }
    var contentTable = document.getElementById("content");//really a tr
    var table = contentTable;
    while( table != null ) {
        if(table.style != null) {
            table.style.display = "none";
        }
        table = table.nextSibling;
    }            
    //Display node
    var navTo = location.id.substring(0, location.id.length-3);
	
    table = document.getElementById(navTo);
    var added = false;
    if(table == null) {
        //Create table
        added = true;
        var tr = document.createElement("tr");
        tr.height = "100%"
        tr.id = navTo;
        var td = document.createElement("td");
        td.valign = "top";
        tr.appendChild(td);
        var iFrame = document.createElement("iframe");
		
        iFrame.frameBorder = "0";
        iFrame.width = "100%";
        iFrame.height = "100%";
        iFrame.scrolling = "no";
        td.appendChild(iFrame);
        if(navTo.toUpperCase() == "TEXTMESSAGES") {
            iFrame.src = "textMessages.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "MEMBERS") {
            iFrame.src = "members.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "NOTES") {
            iFrame.src = "notes.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "ATTENDED") {
            iFrame.src = "attendeds.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "ATTACHMENTS") {
            iFrame.src = "attachments.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "EMAILS") {
            iFrame.src = "emails.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "PHONECALLS") {
            iFrame.src = "phonecalls.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "LISTS") {
            iFrame.src = "lists.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "DROPDOWNS") {
            iFrame.src = "dropdowns.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "TWEETS") {
            iFrame.src = "tweets.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "MESSAGING") {
            iFrame.src = "messaging.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "MANAGEMEMBERS") {
            iFrame.src = "manageEventMembers.htm?parentId="+objectId;
        }
        else if(navTo.toUpperCase() == "DUPLICATES") {
            iFrame.src = "duplicates.htm?contactId="+objectId;
        }
        else if(navTo.toUpperCase() == "GALLERY") {
            iFrame.src = "lightbox/index.htm?eventId="+objectId;
        }
        else if(navTo.toUpperCase() == "ERROR") {
            iFrame.src = "error.htm?errorId="+objectId;
        }
        else if(navTo.toUpperCase() == "OBJECTS") {
            iFrame.src = "objects.htm";
        }
        else if(navTo.toUpperCase() == "PHOTOURL") {
            iFrame.src = "photoURL.htm";
        }
        else if(navTo.toUpperCase() == "PHOTOEXTERNAL") {
            iFrame.src = "photoExternal.htm";
        }
        else if(navTo.toUpperCase() == "DATAROWS") {
            iFrame.src = "datamaprows.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        else if(navTo.toUpperCase() == "DUPLICATERULEDETAILS") {
            iFrame.src = "duplicateRuleDetails.htm?parentId="+objectId+"&OBJECT="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode;
        }
        var parentNode = contentTable.parentNode;
        //Set the width of the parent iframe
        parent.openMainDatagrid();
        parentNode.appendChild(tr);
    }
    if(is.ie) {
        document.getElementById(navTo).style.display = "block";
    }else {
        document.getElementById(navTo).setAttribute("style", '');
        //Make sure new/update object is not blocking grid
        try {
            if(!added && navTo.toLowerCase() != "content") {
                var tr = document.getElementById(navTo);
                var iframe = tr.getElementsByTagName("iframe")[0];
                iframe.contentWindow.document.getElementById("objectViewerCol").width = "0";
            }
        }catch(error){}
        //make sure that the parent iframe is also corrently sized
        parent.openMainDatagrid();
    }
}
//OBJECTTYPECODE IS WHAT WE'RE INTERESTED IN LOOKING UP
function addToList(objectTypeCode, parentObjectTypeCode, objectId) {
    var list = objectId;
    if(!parentObjectTypeCode) {
        parentObjectTypeCode = LIST_OBJECT;
    }
    if(!objectId) {
        list = getSelectedRows();
    }
    var url = "addChildren.htm?objectTypeCode="+objectTypeCode+"&parentObjectTypeCode="+parentObjectTypeCode+"&objectIds="+list;
	
    newWindow(url, 'addChildren');
}
function quickLaunch() {
	
    var list = getSelectedRows();
    //Make sure something has been selected
    if(list.length > 0) {
        var url = "quickLaunch.htm?&objectIds="+list;
        //newWindow(url, 'quickLaunch');
        setupObject(url);
    }else {
        displayStatus("Please select contacts from datagrid", false, true);
    }
}

function loadTime(name, layer, textField, objectId) {
    var div = document.getElementById(layer);
    var dropdownAJAX = getRequestObject();
    var address = "Dropdown";
    var data = "name="+name+"&objectId="+objectId;
    //sendRequestPost(address, data, dropdownAJAX); 
    sendRequestPostNoFunction(address, data, dropdownAJAX);
    
    dropdownAJAX.onreadystatechange = function () {
        if (dropdownAJAX.readyState == 4) {   
            if (dropdownAJAX.status == 200) { //Successful Request
                //alert(dropdownAJAX.responseText);
                var xmlDoc      = getXmlDoc(dropdownAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("GetDropdown AJAX call failed: "+error.text);
                }else {
                    var options = xmlDoc.getElementsByTagName("row");
                    for(var x = 0; x<options.length; x++) {
                        var row = document.createElement("div");
                        row.style.cursor = "pointer";
                        row.appendChild(document.createTextNode(options[x].getElementsByTagName("text")[0].childNodes[0].nodeValue));
                        row.onclick = function() {
                            this.parentNode.style.display = "none";
                            document.getElementById(textField).value = this.childNodes[0].nodeValue;
                            document.getElementById(textField).focus();	
                            //Run any events on textfield
                            var targetField = document.getElementById(textField);
                            var evt = document.createEvent("HTMLEvents");
                            //Fire registered events
                            if(evt.initEvent)
                            {
                                evt.initEvent("change", true, true);
                            }
                            if(targetField.dispatchEvent)
                            {
                                targetField.dispatchEvent(evt);
                            }
                            if(targetField.fireEvent)
                            {
                                targetField.fireEvent("onchange");
                            }
                            
                        }
                        div.appendChild(row);
                    }
                }
                document.getElementById(textField).setAttribute("loaded", true);
            } else {
                alert("Error AJAX Call to GetDropdown failed.  Could not contact web service: "+dropdownAJAX.status);
            }
        }
    }
}

function openTimeLayer(layer) {
    document.getElementById(layer).style.display = "block";
}      
function openMySpaceUrl(element) {
    var mySpaceUserName = element.childNodes[0].value;
    var url  = "http://myspace.com/"+mySpaceUserName;
    if(mySpaceUserName != "") {
        newWindow(url, "myspace");
    }
}
function openFacebookUrl(element) {
    var facebookUrl = element.childNodes[0].value;
    var url  = "http://www.facebook.com/profile.php?id="+facebookUrl;
    if(facebookUrl != "") {
        newWindow(url, "facebookUrl");
    }
}       

function URLEncode (clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9_.]*)/;
    while (x < clearString.length) {
        var match = regex.exec(clearString.substr(x));
        if (match != null && match.length > 1 && match[1] != '') {
            output += match[1];
            //alert(output + " : adding: "+match[1]);
            x += match[1].length;
        } else {
            if (clearString[x] == ' ') {
                output += '%20';
            }
            else if(clearString[x] == '+') {
                //alert("Found +: "+clearString[x]);   
                output += '%2B';
            }else {
                var charCode = clearString.charCodeAt(x);
                var hexVal = charCode.toString(16);
                output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
            }
            x++;
        }
    }
    return output;
}

// XML writer with attributes and smart attribute quote escaping 
function element(name,content,attributes){
    var att_str = '';
    if (attributes) { // tests false if this arg is missing!
        att_str = formatAttributes(attributes);
    }
    var xml
    if (!content && content!=""){
        xml='<' + name + att_str + '/>';
    }
    else {
        xml='<' + name + att_str + '>' + content + '</'+name+'>';
    }
    return (xml);
}

var APOS = "'"; 
var QUOTE = '"';
var ESCAPED_QUOTE = {  };
ESCAPED_QUOTE[QUOTE] = '&quot;';
ESCAPED_QUOTE[APOS] = '&apos;';
   
/*
   Format a dictionary of attributes into a string suitable
   for inserting into the start tag of an element.  Be smart
   about escaping embedded quotes in the attribute values.
*/
function formatAttributes(attributes) {
    var att_value;
    var apos_pos, quot_pos;
    var use_quote, escape, quote_to_escape;
    var att_str;
    var re;
    var result = '';
   
    for (var att in attributes) {
        att_value = attributes[att];
        // Find first quote marks if any
        apos_pos = att_value.indexOf(APOS, 0);
        quot_pos = att_value.indexOf(QUOTE, 0);
       
        // Determine which quote type to use around 
        // the attribute value
        if (apos_pos == -1 && quot_pos == -1) {
            att_str = ' ' + att + "='" + att_value +  "'";
            result += att_str;
            continue;
        }
        
        // Prefer the single quote unless forced to use double
        if (quot_pos != -1 && quot_pos < apos_pos) {
            use_quote = APOS
        }
        else {
            use_quote = QUOTE
        }
   
        // Figure out which kind of quote to escape
        // Use nice dictionary instead of yucky if-else nests
        escape = ESCAPED_QUOTE[use_quote]
        
        // Escape only the right kind of quote
        re = new RegExp(use_quote,'g')
        att_str = ' ' + att + '=' + use_quote + 
        att_value.replace(re, escape) + use_quote
        result += att_str
    }
    return result;
}
//------------------ HORIZONAL DROPDOWN-----------------------------
function show(element) {
    var e = element.getElementsByTagName("table")[0];
    if(e == null) {
        e = element; 
    }
    e.style.display = "block";
}
function hide(element) {
    var e = element.getElementsByTagName("table")[0];
    if(e == null) {
        e = element; 
    }
    e.style.display = "none";
}
//---------------------END------------------------------------------
function findPos(obj) {
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft,curtop];
}		
function addMembers(x, y, refresh) {
    if(!refresh) {
        refresh = false;
    }
    var url = "addContacts.htm?parentId="+x+"&parentObjectTypeCode="+y+"&refresh="+refresh;
    newWindow(url, "addContacts");
}	
//--------------------SET DEFAULT DATE TIME----------------
//Takes the element that holds the date and populates it with today's date.
//Also populates the time dropdown as well.
function setDefaultDateTime(elementName, offset) {
    //Set date default value
    var date = new Date();
    if(!offset) {
        offset = 0;
    }
    document.getElementById(elementName).value = date.getMonth()+1+"/"+date.getDate()+"/"+date.getFullYear();
    var hours = date.getHours();
	
    var minutes = date.getMinutes();
    var hours 	= date.getHours();
    var day 	= date.getDate();
	
    minutes = minutes + offset;
    if(minutes >= 60) {
        minutes = minutes - 60;
        hours++;
    }
    if(hours == 24) {
        hours = 0;
        day++;
    }
    date.setMinutes(minutes);
    date.setHours(hours);
    date.setDate(day);
	
    var AMPM = "AM";
    if(hours > 12) {
        hours = hours-12;
        AMPM = "PM"
    }
    if(hours.toString().length == 1) {
        hours = "0"+hours;
    }
    if(document.getElementById(elementName+"time") != null && document.getElementById(elementName+"time").value != null) {
        var minutes = "0";
        if(date.getMinutes() < 10) {
            minutes += date.getMinutes();
        }else {
            minutes = date.getMinutes();
        }
        document.getElementById(elementName+"time").value = hours+":"+minutes +" "+ AMPM;
    }
}
function getMergeFields(objectTypeCode, element, alwaysDisplay) {
    if(!alwaysDisplay) {
        alwaysDisplay = false;
    }
    var div = document.getElementById(element.id+"columns");
    //delete all childnodes of the div object
    while(div.getElementsByTagName("table").length > 0) {
        div.removeChild(div.childNodes[0]);
    }
    var table = document.createElement("table");
    table.style.borderCollapse="collapse";
    table.style.borderSpacing="0px 0px";
    table.style.width="100%";
    var tbody = document.createElement("tbody");
    table.appendChild(tbody);
			
    div.appendChild(table);
			
    var columnRequest = getRequestObject();
    var address = "GetMergeColumns";
    var data = "objectTypeCode="+objectTypeCode;
    sendRequestPostNoFunction(address, data, columnRequest);   
    columnRequest.onreadystatechange = function() {
        if(columnRequest.readyState == 4) {
            if(columnRequest.status == 200) {
                var xmlDoc = getXmlDoc(columnRequest.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("Dynamic Search AJAX call failed: "+error.text);
                }else {
                    var rows = xmlDoc.getElementsByTagName("row");
                    for(var x = 0; x<rows.length; x++) {
                        var data = rows[x];
                        var tr = document.createElement("tr");
                        var td = document.createElement("td");
                        tr.appendChild(td);
                        td.onmouseover = function() {
                            this.className='ddover';
                        }
                        td.onmouseout = function() {
                            this.className='ddout';
                        }
                        td.style.cursor = "pointer";
                        td.appendChild(document.createTextNode(data.getElementsByTagName("text")[0].childNodes[0].nodeValue));
                        //td.id = data.getElementsByTagName("value")[0].childNodes[0].nodeValue+"_";
			                       
                        td.onclick = function() {
                            var id = element.id.substring(0, element.id.length-2);
                            var message = document.getElementById(id).value;
                            message += " <" +this.childNodes[0].nodeValue+">";
                            document.getElementById(id).value = message;
                            if(!alwaysDisplay) {
                                div.style.display = "none";
                            }
                        }
                        tbody.appendChild(tr);
                    }
                //div.style.display = "block";
                //element.appendChild(div);
                }
            }else {
                alert("Error AJAX Call to Columns failed.  Could not contact web service: "+columnRequest.responseText);
            }
        }
    }
}
function positionMergeFields(div, element) {
    div.style.display = "none";
    var array = findPos(element);
    div.style.left = array[0];
    div.style.top = array[1] + 15;// + element.offsetHeight -90;
    div.style.display = "block";
} 
function manualDistribute(objectId, objectTypeCode, type) {
    var distributeAJAX = getRequestObject();
    var address = "Distribute";
    var data = "objectId="+objectId+"&objectTypeCode="+objectTypeCode+"&type="+type;
    //alert(data);
    sendRequestPostNoFunction(address, data, distributeAJAX);
    
    distributeAJAX.onreadystatechange = function () {
        if (distributeAJAX.readyState == 4) {   
            if (distributeAJAX.status == 200) { //Successful Request
                var xmlDoc      = getXmlDoc(distributeAJAX.responseText);
                var error = xmlDoc.getElementsByTagName("error")[0];
                if(error != null) {
                    alert("responseText AJAX call failed: "+error.text+"\n"+distributeAJAX.responseText);
                }else {
                    alert("Text Messages for List Members Created");
                }
            } else {
                alert("Error AJAX Call to Distribute failed.  Could not contact web service: "+distributeAJAX.responseText);
            }
        }
    }
}
/*COUNT AND SHOW/HIDE message length*/        
function showMessageCount(elementId) 
{
    document.getElementById(elementId).style.display = "block";
}
function hideMessageCount(elementId) 
{
    document.getElementById(elementId).style.display = "none";
}
/*displays number of charaters in message.*/
function countCharacters(element) {
    //Figure out the name of the div layer
    var str = element.attributes.getNamedItem("layername").value;
    var layerName = str;//str.substring(str.indexOf("\'")+1, str.lastIndexOf("\'"));
    var span = document.getElementById(layerName).getElementsByTagName("span")[1];
    span.style.fontWeight = "bold";	
    /*get maxlength attribute and make length is not over*/
    if(span.attributes.getNamedItem("maxlength") != null) {
        if(span.attributes.getNamedItem("maxlength").value < element.value.length) {
            element.value = element.value.substring(0, (span.attributes.getNamedItem("maxlength").value+25)); 		
        }
        /*set color*/
        if(element.value.length + 10 > span.attributes.getNamedItem("maxlength").value) {
            span.style.color = "red";
        }else {
            span.style.color = "green";
        }
    }
    span.childNodes[0].nodeValue = element.value.length;
	
}        
function formatPhonenumber(element) {
    // looks for a string that is all numbers that is 9 charaters long
    //returns (xxx) xxx-xxxx
    var x = element.value;
    x = x.replace(/[^0-9]/gi, "");//remove all non numaric
    var re = /^(\d{3})(\d{3})(\d{4})$/
    if(re.test(x) == true) 
    {
        element.value = "("+RegExp.$1 + ") " + RegExp.$2 + "-" + RegExp.$3;
    } 
}
function is_ignorable( node )
{
    /*
	if(!node) {
		return(false);
	}
	*/
    return ( node.nodeType == 8) || // A comment node
    ( (node.nodeType == 3) && is_all_ws(node) ); // a text node, all ws
}
function is_all_ws( node )
{
    // Use ECMA-262 Edition 3 String and RegExp features
    return !(/[^\t\n\r ]/.test(node.data));
}

/*-----------------------------------------------*/
/*----------Needed to get IE and firefox to work-*/
/*-----------------------------------------------*/
function getPreviousSibling (elem)
{
    do {
        elem = elem.previousSibling;
    } 
    while (elem.tagName == 'undefined' || elem.tagName == null);
	
    return (elem);
}
function getNextSibling (elem)
{
    while (elem.tagName == 'undefined') {
        elem = elem.nextSibling;
    };
    return elem;
}
/*String trim function*/
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function layerObject(divElement, parentElement) {
    this.divElement = divElement;
    this.parentElement = parentElement;
}

function displayStatus(message, displayImage, displayConfirmationButton, messageTwo, onclickEvent, 
    onclickEventTwo, buttonOneText, buttonTwoText) {
	
    if(onclickEvent) {
        modalAction = onclickEvent;
    }else {
        modalAction = function() {}
    }
    if(onclickEventTwo) {
        modalActionTwo = onclickEventTwo;
        document.getElementById("box").getElementsByTagName("td")[5].setAttribute("style", "");
    }else {
        modalActionTwo = function() {}
        document.getElementById("box").getElementsByTagName("td")[5].style.display = "none";
    }
    if(message) {
        document.getElementById("box").getElementsByTagName("td")[1].innerHTML = message;
    }
    if(messageTwo) {
        document.getElementById("box").getElementsByTagName("td")[4].setAttribute("style", "");
        document.getElementById("box").getElementsByTagName("td")[4].childNodes[0].nodeValue = messageTwo;
    }else {
        document.getElementById("box").getElementsByTagName("td")[4].setAttribute("style", "none");
    }
    if(displayImage) {
        document.getElementById("box").getElementsByTagName("td")[2].setAttribute("style", "");
    }else {
        document.getElementById("statusimage").style.display = "none" ;
        document.getElementById("box").getElementsByTagName("td")[2].style.display = "none" ;
    }
    if(displayConfirmationButton) {
        document.getElementById("box").getElementsByTagName("td")[3].setAttribute("style", "");
    }else {
        document.getElementById("box").getElementsByTagName("td")[3].style.display = "none" ;
    }
    if(buttonOneText) {
        document.getElementById("box").getElementsByTagName("input")[0].value= buttonOneText;
    }
    if(buttonTwoText) {
        document.getElementById("box").getElementsByTagName("input")[1].value= buttonTwoText;
    }
    sm('box',250,100);
   
}
/*delay time in milliseconds*/
function hideStatus(delaytime) {
    //setTimeout("hm('box')", delaytime);
    hm('box');
}
/*place holder function*/
function modalAction() {}
/*place holder function*/
function modalActionTwo() {}

function fireOnChange(element) {
    
    var evt = document.createEvent("HTMLEvents");
    //Fire registered events
    if(evt.initEvent)
    {
        evt.initEvent("change", true, true);
    }
    if(element.dispatchEvent)
    {
        element.dispatchEvent(evt);
    }
    if(element.fireEvent)
    {
        element.fireEvent("onchange");
    }
}

function replaceLeadingZero(value) {
    value = value.replace(/^[ 0]+/,'');
    return(value);
}
function setupObject(url) {
    var iframe = document.getElementById("objectViewerFrame");
    iframe.src = url;
    var td = document.getElementById("objectViewer");
    td.style.opacity = ".01";     
    sizeIframe();
}

function closeObject() {
    /*get iframe*/
    try {
        var iframe = document.getElementById("objectViewerFrame");
        iframe.src = "about:blank";
        var col = document.getElementById("objectViewerCol");
        col.width = "0px";
    }catch(error){}
    try {
        //for closing layer
        hm('layer');
    }catch(error){}
    try {
        parent.parent.openMainDatagrid();	
    }catch(error) {
    //alert("Close object: "+error.description);
    }
}
//-----------------------------------------
//-----------------------------------------
function closeMainDatagrid() {
    var col = document.getElementById("objectViewerCol");
    col.width="100%"
}
function openMainDatagrid() {
    try {//for customizations
        var col = document.getElementById("objectViewerCol");
        col.width="750";
    }catch(error){}
}

function closeObjectCol() {
    var col = document.getElementById("objectViewerCol");
    col.width = "0px";
}
//-----------------------------------------
//-----------------------------------------
function isNull(value) {
    return (value == undefined || "undefined" == typeof(value) || "unknown" == typeof(value) || null == value || value == "" || window.value != undefined);
}

/*Code loads training videos */
function loadVideo(video) {
    sm('videobox',700,700);

    if(video == "CONTACTS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/lyThqRK-6Ck?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/lyThqRK-6Ck?version=3&amp;hl=en_US");     
    }
    else if(video == "SEARCH") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/fpZyFK_DVaE?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/fpZyFK_DVaE?version=3&amp;hl=en_US");
    }
    else if(video == "EVENTLISTWIZARD") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/cwPqMFrdpvI?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/cwPqMFrdpvI?version=3&amp;hl=en_US");
    }
    else if(video == "LOGIN") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/embed/gIwwMlrgGKY?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/fpZyFK_DVaE?version=3&amp;hl=en_US");
    }
    else if(video == "INBOX") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/JJ2KKJngyyY?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/JJ2KKJngyyY?version=3&amp;hl=en_US");
   }
    else if(video == "OUTBOX") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/JJ2KKJngyyY?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/JJ2KKJngyyY?version=3&amp;hl=en_US");
    }
    else if(video == "DATAIMPORT") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/PM_aIVvMWK0?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/PM_aIVvMWK0?version=3&amp;hl=en_US");
    }
    else if(video == "EVENTS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "LISTS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "CALENDAR") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "QUICKLAUNCH") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/cIg7S_ldv5M?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/cIg7S_ldv5M?version=3&amp;hl=en_US");
    }
    else if(video == "CAMPAIGNS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "TEMPLATES") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/embed/5E13WbrPduI?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/5E13WbrPduI?version=3&amp;hl=en_US");
    }
    else if(video == "FLYERS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "GROUPS") {
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "PHOTOCUSTOMIZATION") {        
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/rDSG_GToQMA?version=3&amp;hl=en_US");
    }
    else if(video == "USERS") {
        alert("USERS VIDEO!");        
        document.getElementById("movie").setAttribute("value", "http://www.youtube.com/v/gIwwMlrgGKY?version=3&amp;hl=en_US");
        document.getElementById("videoembed").setAttribute("src", "http://www.youtube.com/v/gIwwMlrgGKY?version=3&amp;hl=en_US");
    }
		
    document.getElementById("mbd").getElementsByTagName("object")[0].style.visibility = "visible";
}

function createErrorXml(servlet, parameters, message) {
	
    var results 			= [  ];
    var attributes 			= {
        objectTypeCode:""+ERROR_OBJECT
        };
    var message 			= element("message", "<![CDATA["+message+"]]>", null);
    var servlet				= element("servlet", servlet, null);
    var parameters			= element("parameters", parameters, null);
        	
    results.push(message);
    results.push(servlet);
    results.push(parameters);
        	
    var innerXml = results.join(' ');
    var fields = element("fields", innerXml, null);
    var object = element("object", fields, attributes);
	
    return(object);
}

//Create object in system from xml
function createObject(object) {
    var request = getRequestObject();
    var data 	= "xml="+URLEncode(object);
    var address = "CreateXml";
    sendRequestPostNoFunction(address, data, request);    
}

/*Set fields to required*/
function setRequieredFields(requiredFields) {
    //Set the req attribute to 2
    for(var x = 0; x<requiredFields.length; x++) {
        requiredFields[x].setAttribute("req", "2");
        /*set class on label*/
        document.getElementById(requiredFields[x].id+"_c").setAttribute("class", "req");
    }
}
/*
function printStackTrace() {
	  var callstack = [];
	  var isCallstackPopulated = false;
	  try {
	    i.dont.exist+=0; //doesn't exist- that's the point
	  } catch(e) {
	    if (e.stack) { //Firefox
	      var lines = e.stack.split('\n');
	      for (var i=0, len=lines.length; i<len; i++) {
	        if (lines[i].match(/^\s*[A-Za-z0-9\-_\$]+\(/)) {
	          callstack.push(lines[i]);
	        }
	      }
      //Remove call to printStackTrace()
	      callstack.shift();
	      isCallstackPopulated = true;
	    }
	    else if (window.opera && e.message) { //Opera
	      var lines = e.message.split('\n');
	      for (var i=0, len=lines.length; i<len; i++) {
	        if (lines[i].match(/^\s*[A-Za-z0-9\-_\$]+\(/)) {
	          var entry = lines[i];
	          //Append next line also since it has the file info
	          if (lines[i+1]) {
	            entry += " at " + lines[i+1];
	            i++;
	          }
	          callstack.push(entry);
	        }
	      }
	      //Remove call to printStackTrace()
	      callstack.shift();
	      isCallstackPopulated = true;
	    }
	  }
	  if (!isCallstackPopulated) { //IE and Safari
	    var currentFunction = arguments.callee.caller;
	    while (currentFunction) {
	      var fn = currentFunction.toString();
	      var fname = fn.substring(fn.indexOf("function") + 8, fn.indexOf('')) || 'anonymous';
	      callstack.push(fname);
	      currentFunction = currentFunction.caller;
	    }
	  }
	  output(callstack);
	}
	 
	function output(arr) {
	  //Optput however you want
  alert(arr.join('\n\n'));
	}
*/

function stacktrace()
{
    re = /function\W+([\w-]+)/i;

    var f = arguments.callee;
    var s = "";
    while (f)
    {
        s += (re.exec(f))[1] + '('; 

        for (i = 0; i < f.arguments.length - 1; i++)
        {
            s += "'" + f.arguments[i] + "', ";
        }

        if (arguments.length > 0)
        {
            s += "'" + f.arguments[i] + "'";
        }

        s += ")\n\n";

        f = f.arguments.callee.caller;
    }
    alert(s);
}

