// Vars
var work_area_x = 330;      
var work_area_y = 372; 
var currentEntityNumber = 1;
var currentTextEntity = new String('');
var currentTextColorEntity = new String('');
var currentTextSizeEntity = new String('');
var currentFontEntity = new String('');
var currentEffectEntity = new String('');
var currentTextImage = new String('te1');
var guidesOn = true;        // alignment guides on or off
var darkBackground = false; // show dark background
var previewscale = .60;     // scale factor for the preview window
var previewXOffset = 0;     // offset for the preview window
var previewYOffset = 0;     //
var renderTimer;            // timer used for real time image render
var renderImage;            // image object used for real time image render
var renderTicks;            // number of ticks we have been waiting for the image to render
var renderLightImages = new Array(4);
var graphicImages = new Array(4);
var bgLightColor = 'FFFFFF';
var bgDarkColor = 'CCCCCC';
var opacityLow = '25';
var opacityHigh = '1';
var noRenderCallsMade = true;
var CPPalette0;
var CPPalette1;
var renderQueue;
var renderQueueIndex = 0;
var renderTimeoutCount = 0;
var httpRequest;
var currentGraphicEntityNumber = 0;
var currentGraphicEntity;
var imageSearchResults = '';
var zGraphic = new Array(54,53,52,51,50);
var zText = new Array(64,63,62,61,60);
var previewmode = 'F';
var thisDesignIsLocked = false;
var helpContextDialog = '';
var mi_CurrentPagerNumber = 0;
var mi_currentSearchPage = 1;
var lastSearchPage = 1;
var ms_LoginSuccessful = String('');		//used for ajax login
var mi_RenderTickInterval = 300;
var mi_AjaxTickInterval = 300;
var mi_AjaxRequestNumber = 1;
var mi_OldZindex = -1;
var ms_LastSelectedElement;
var mb_MovingText = false;

// cach loader
function preloadTstudioImages(){
	var i1 = new Image();i1.src = '../images/empty.gif';
	var i2 = new Image();i2.src = '../images/shirt_canvas_large.gif';
	var i3 = new Image();i3.src = '../images/shirt.gif';
	var i4 = new Image();i4.src = '../images/addtext_off.gif';
	var i5 = new Image();i5.src = '../images/addtext_on.gif';
	var i6 = new Image();i6.src = '../images/addgraphic_off.gif';
	var i7 = new Image();i7.src = '../images/addgraphic_on.gif';
	var i8 = new Image();i8.src = '../images/getstarted.gif';
	var i9 = new Image();i9.src = '../images/tbtext_off.gif';
	var i10 = new Image();i10.src = '../images/tbsave_off.gif';
	var i11 = new Image();i11.src = '../images/tbgraphic_off.gif';
	var i12 = new Image();i12.src = '../images/tbpreview_off.gif';
	var i13 = new Image();i13.src = '../images/tbinfo_off.gif';
	var i14 = new Image();i14.src = '../images/tbtext_on.gif';
	var i15 = new Image();i15.src = '../images/tbsave_on.gif';	
	var i16 = new Image();i16.src = '../images/tbgraphic_on.gif';
	var i17 = new Image();i17.src = '../images/tbpreview_on.gif';
	var i18 = new Image();i18.src = '../images/tbinfo_on.gif';
	var i19 = new Image();i19.src = '../images/font1000.gif';
	var i20 = new Image();i20.src = '../images/glassbutton_off.gif';
	var i21 = new Image();i21.src = '../images/glassbutton_on.gif';
	var i22 = new Image();i22.src = '../images/gridcombo.gif';
	var i23 = new Image();i23.src = '../images/tree_text.gif';
	var i24 = new Image();i24.src = '../images/tree_graphic.gif';
}

// Init 
function initstudio() {

	CPPalette0 = new ColorPicker('',0); // bg color picker
	CPPalette1 = new ColorPicker('',1); // text color
	
    dobj.initialize();  //init d&d
	
	if (!browserOK()) {
		window.location = 'browserissue.aspx';
	}
    
    //init render arrays
    var i;
    for (i=0; i<5; i++) {
        renderLightImages[i] = new Image();
		renderLightImages[i].src = '../images/empty.gif';
			
		graphicImages[i] = new Image();
		graphicImages[i].src = '../images/empty.gif';
    }
	
	// if there is an SOS call then set it up
	if (document.getElementById('slogan').value != ''){
		burp('slogan found');
		document.getElementById('te1_value').value = document.getElementById('slogan').value;
		document.getElementById('te1_position').value = '5,35,64';
		document.getElementById('te1_just').value = 'C';
		
		if (document.getElementById('sos_font').value != '') {
			document.getElementById('te1_font').value = document.getElementById('sos_font').value;
		}

		if (document.getElementById('sos_color').value != '') {
			document.getElementById('te1_color').value = document.getElementById('sos_color').value;
		}

		if (document.getElementById('sos_size').value != '') {
			document.getElementById('te1_size').value = document.getElementById('sos_size').value;
		}				
	}
		
	// determine new design or load existing designrende
	var ls_Action = document.getElementById('form_action').value;
	
	if ((ls_Action == 'LOAD') || (ls_Action == 'LOAD_LOCKED') || (document.getElementById('slogan').value != '') || (ls_Action == 'HIJACK') ) {
	
		if (ls_Action == 'LOAD_LOCKED') {
			thisDesignIsLocked = true;
			document.getElementById('txtDesignName').disabled = true;
		}
		else {
			document.getElementById('txtDesignName').disabled = false;
		}
		
		changeToDialog('loading');
		loadDesign();
		
		if (ls_Action == 'HIJACK'){
		    document.getElementById('form_action').value = 'SAVE_NEW';
		    document.getElementById('txtDesignName').value = '';
		    document.getElementById('design_name').value = '';
		}
		else {
			document.getElementById('txtPassword2').style.display = 'none';
		    document.getElementById('lblPassword2').style.display = 'none';
		    document.getElementById('txtZip').style.display = 'none';
		    document.getElementById('lblZip').style.display = 'none';
		    document.getElementById('form_action').value = 'SAVE_EXISTING';
		    document.getElementById('optNewAccount').checked = true;	
		}
		
	}
	else {
		// clear text boxes
		for (i=1; i<6; i++) {
			document.getElementById('te' + i + '_value').value = '';
			document.getElementById('ge' + i + '_design').value = '';
		}			
		changeToDialog('intro');
	}
	
	// configure the ajax request object	
	httpRequest = createRequestObject();
	
	// if the user is logged in then we dont need to show account fields
	if (document.getElementById('loginStatus').value == 'Y') {	
		document.getElementById('lblEmail').style.display = 'none';
		document.getElementById('txtEmail').style.display = 'none';
		document.getElementById('lblPassword1').style.display = 'none';
		document.getElementById('txtPassword1').style.display = 'none';
		document.getElementById('lblPassword2').style.display = 'none';
		document.getElementById('txtPassword2').style.display = 'none';
		document.getElementById('lblZip').style.display = 'none';
		document.getElementById('txtZip').style.display = 'none';
		document.getElementById('lblNewAccount').style.display = 'none';
		document.getElementById('optNewAccount').style.display = 'none';
		document.getElementById('lblExistingAccount').style.display = 'none';
		document.getElementById('optExistingAccount').style.display = 'none';
		document.getElementById('txtContactName').style.display = 'none';
		document.getElementById('lblContactName').style.display = 'none';
		document.getElementById('chkOptin').style.display = 'none';
		document.getElementById('lblOptin').style.display = 'none';		
	}	
	
	// set up zIndexes for elements
	for (i=1; i<6; i++) {
		document.getElementById('te' + i).style.zIndex = 65 - i;
		document.getElementById('ge' + i).style.zIndex = 55 - i;
	}
	document.getElementById('txtDesignName').value = document.getElementById('design_name').value;
	
	
	// debugger
	var ls_query = location.search.substring(1); 	
	if (stringContains(ls_query, 'SHOWDEBUG')) {
		document.getElementById('debug').style.display = 'inline';	
		document.getElementById('formvalues').style.display = 'inline';
	}

	// setup the preview image (switch to back if we are in back mode)
	if (document.getElementById('previewMode').value == 'B') {
		document.getElementById('preview').style.backgroundImage = "url(../images/previewshirtback.gif)";
		previewmode = 'F'		
	}
	else {
		previewmode = 'B'
	}
	
	writetostatus('Corporate Casuals T-Shirt Studio');
}

function browserOK() {
	var userAgent = navigator.userAgent.toLowerCase(); 
	var lb_BrowserOK = false;	
	
	// Supported versions of IE
	if (stringContains(userAgent, 'msie 5.5')) {lb_BrowserOK  = true};
	if (stringContains(userAgent, 'msie 6.0')) {lb_BrowserOK  = true};
	if (stringContains(userAgent, 'msie 7.0')) {lb_BrowserOK  = true};
	if (stringContains(userAgent, 'msie 8.0')) {lb_BrowserOK  = true};
		
	// supported versions of FF
	if (stringContains(userAgent, 'firefox'))  {lb_BrowserOK  = true};
		
	// supported versions of safari
	if ((stringContains(userAgent, 'safari')) && (stringContains(userAgent, 'mozilla/5.0'))) {lb_BrowserOK  = true};
		

	
	return lb_BrowserOK;
}

function stringContains(ls_BigString, ls_PartialString)
{
	var loc = ls_BigString.indexOf(ls_PartialString) + 1;
	return loc;
}

function hideAllDialogs() {
    document.getElementById('intro').style.display = 'none';
    document.getElementById('textprops').style.display = 'none';
    document.getElementById('imagesearch').style.display = 'none';	
	document.getElementById('imageresults').style.display = 'none';
	document.getElementById('imagedetails').style.display = 'none';		
    document.getElementById('save').style.display = 'none';
	document.getElementById('windowshade').style.display = 'none';
	document.getElementById('loading').style.display = 'none';
	document.getElementById('upload').style.display = 'none';
}

function changeToDialog(as_DialogName) {

	helpContextDialog = as_DialogName;
	
	hideAllDialogs();
	
	if ((as_DialogName == 'intro') || (as_DialogName == 'loading')) {
		document.getElementById('windowshade').style.display = 'inline';
		document.getElementById('save').style.display = 'inline';
	}
	else if ((as_DialogName == 'imageresults')||(as_DialogName == 'imagesearch')){
		document.getElementById('design').style.display = "none";
		document.getElementById('preview').style.display = "none";	
	}
	else {
		document.getElementById('design').style.display = "inline";
		document.getElementById('preview').style.display = "none";
	}
    document.getElementById(as_DialogName).style.display = 'inline';
}
function hasOpenSlots(ab_text) {
	var i;
	var ls_prefix;
	var ls_suffix;
	
	if (ab_text) {
		ls_prefix = 'te';
		ls_suffix = '_value';
	}
	else {
		ls_prefix = 'ge';
		ls_suffix = '_design';	
	}
	
    for (i=1; i<6; i++) {
        temp = document.getElementById(ls_prefix + i + ls_suffix).value;
        if (temp.length == 0) {
			return true;
		}
	}
	
	return false;
}

// this function handles all click events
function clicked(ai_item) {    
        
    switch (ai_item) {
        case 1:
            hideMenus();
			mb_MenuEnabled = true;
			if (hasOpenSlots(true)) {
				showDesign('preview');
				changeToDialog('textprops')         													
				getNextTextEntity();
				setTextDefaults();
				setTipMessage(3);	
				document.getElementById('btnBackText').style.display = 'inline';
				document.getElementById('b5').style.display = 'none';

				// all text is centered by default
				document.getElementById('te' + currentEntityNumber + '_just').value = 'C';
				document.getElementById('fontjustify').style.backgroundImage = "url(../images/check_on.gif)";
			}
			else {
				alert('You can have a maximum of 5 text entities per design.');
				changeToDialog('save')
				showDesign('preview');
			}

            break;
        
        case 2:
            hideMenus();
			mb_MenuEnabled = true;
			if (hasOpenSlots(false)) {
				showDesign('preview');
				changeToDialog('imagesearch');				
				setTipMessage(2);
			}
			else {
				alert('You can have a maximum of 5 graphic entities per design.');
				changeToDialog('save');
				showDesign('preview');				
			}	

            break;        
        
        case 3:
            hideMenus();
            changeToDialog('save');
			highlightEntity(0, true);
			highlightEntity(0, false);
			document.getElementById('highlighter').style.display = 'none';
			setTipMessage(5);
            break;        
        
        case 4:
            hideMenus();
            CPPalette1.select(document.forms[0].th_bgswatch,'bgswatch', 'design', 'preview'); 					
            break;
				
        case 5:
            hideMenus();
            if (document.getElementById('gridmenu').style.display == 'inline') {
                document.getElementById('gridmenu').style.display = 'none';
            }
            else {
                document.getElementById('gridmenu').style.display = 'inline';
            }                                 
            break;            
                                           
       case 11:                        
            hideMenus();
            CPPalette0.select(document.getElementById(currentTextColorEntity), 'fontcolor', 'fontcolor', 'fontcolor');        
            break;
            
       case 12:
            hideMenus();
            if (document.getElementById('fontmenu').style.display == 'inline') {
                document.getElementById('fontmenu').style.display = 'none';
            }
            else {
                document.getElementById('fontmenu').style.display = 'inline';
            }                                 
            break;         
                
       case 13:            
            hideMenus();
            addText();
			writeTextSummary();
			setTipMessage(0);
            break;
            
       case 14:
            hideMenus();            
			deleteCurrentTextEntity();
			writeTextSummary();
			highlightTree(currentEntityNumber, true);
			setTipMessage(5);
			backButton();
            break;
            
      case 15:
            hideMenus();
			
            if (document.getElementById('sizemenu').style.display == 'inline') {
                document.getElementById('sizemenu').style.display = 'none';
            }
            else {
                document.getElementById('sizemenu').style.display = 'inline';
            }        
            break;
            
      case 16:
            hideMenus();
            if (document.getElementById('effectmenu').style.display == 'inline') {
                document.getElementById('effectmenu').style.display = 'none';
            }
            else {
                document.getElementById('effectmenu').style.display = 'inline';
            }        
            break;  
	  case 17:
			// info
			selectHelpTopic(1);
			document.getElementById('help').style.display = 'inline';
			setTipMessage(0);
			break;
      
	  case 18:
			hideMenus();
			getNextTextEntity();
            addText();			
			writeTextSummary();		
			document.getElementById('b4').style.display = 'inline';
			document.getElementById('btnBackText').style.display = 'none';
			document.getElementById('b5').style.display = 'inline';
			document.getElementById('btnAddText').style.display = 'none';
			setTipMessage(0);			
			break;
	 case 19:
		window.open ('tstudio-faq.aspx','popwindow','scrollbars=1,menubar=0,resizable=1,width=800,height=400');
		break;
		
	case 20:
		hideMenus();
        changeToDialog('upload');
		highlightEntity(0, true);
		highlightEntity(0, false);
		document.getElementById('highlighter').style.display = 'none';
		break;
	case 21:
		document.location = '../main/designcenter.aspx';
		break;
    }
}

// this function responds to mouseovers
function hover(ai_item) {
    switch (ai_item) {
        case 1:
            document.getElementById('btnTBText').src = '../images/tbtext_on.gif';
            break;
        case 2:
            document.getElementById('btnTBGraphic').src = '../images/tbgraphic_on.gif';
            break;
        case 3:
            document.getElementById('btnTBSave').src = '../images/tbsave_on.gif';
            break;
	    case 4:            
			document.getElementById('addtext').style.backgroundImage = "url(../images/addtext_on.gif)";
            break;
	    case 5:
			document.getElementById('addgraphics').style.backgroundImage = "url(../images/addclipart_on.gif)";           
            break;
        case 6:
            document.getElementById('rotateShirt').src = '../images/rotateshirt_on.gif';
            break;
        case 7:
            document.getElementById('btnTBPreview').src = '../images/tbpreview_on.gif';
            break;			
        case 8:
            document.getElementById('btnTBInfo').src = '../images/tbinfo_on.gif';
            break;				
        case 9:
            document.getElementById('btnTBRotate').src = '../images/tbrotate_on.gif';
            break;				
        case 10:
            document.getElementById('btnTBFaq').src = '../images/tbfaq_on.gif';
            break;				
        case 11:
            document.getElementById('btnTBUpload').src = '../images/tbupload_on.gif';
            break;				
		case 12:
			document.getElementById('uploadgraphics').style.backgroundImage = "url(../images/uploadimage_on.gif)";
			break;
		case 13:
			document.getElementById('designcenter').style.backgroundImage = "url(../images/designcenter_on.gif)";			
			break;		
    }
}

// this function clears mouseovers
function clearhover(ai_item) {
    switch (ai_item) {
        case 1:
            document.getElementById('btnTBText').src = '../images/tbtext_off.gif';
            break;
        case 2:
            document.getElementById('btnTBGraphic').src = '../images/tbgraphic_off.gif';
            break;
        case 3:
            document.getElementById('btnTBSave').src = '../images/tbsave_off.gif';
            break;      
	    case 4:
			document.getElementById('addtext').style.backgroundImage = "url(../images/addtext_off.gif)";
            break;
	    case 5:
			document.getElementById('addgraphics').style.backgroundImage = "url(../images/addclipart_off.gif)";
            break;
        case 6:
            document.getElementById('rotateShirt').src = '../images/rotateshirt_off.gif';
			break;			
        case 7:
            document.getElementById('btnTBPreview').src = '../images/tbpreview_off.gif';
            break;			
        case 8:
            document.getElementById('btnTBInfo').src = '../images/tbinfo_off.gif';
            break;			
        case 9:
            document.getElementById('btnTBRotate').src = '../images/tbrotate_off.gif';
            break;			
        case 10:
            document.getElementById('btnTBFaq').src = '../images/tbfaq_off.gif';
            break;				
        case 11:
            document.getElementById('btnTBUpload').src = '../images/tbupload_off.gif';
            break;				
		case 12:
			document.getElementById('uploadgraphics').style.backgroundImage = "url(../images/uploadimage_off.gif)";
			break;
		case 13:
			document.getElementById('designcenter').style.backgroundImage = "url(../images/designcenter_off.gif)";
			break;			
    }
}

function zhover(ai_item) {
		document.getElementById(ai_item).src = '../images/zup_on.gif';
}


function zclearhover(ai_item) {
		document.getElementById(ai_item).src = '../images/zup_off.gif';
}

// determines the next text entity
function getNextTextEntity() {
    var i;
    //var temp = new String('');
    
    for (i=1; i<6; i++) {
        temp = document.getElementById('te' + i + '_value').value;
        
        if (temp.length == 0) {
            currentTextEntity = 'te' + i + '_value';            
            currentTextColorEntity = 'te' + i + '_color'; 
            currentTextSizeEntity = 'te' + i + '_size'; 
            currentFontEntity = 'te' + i + '_font'; 
            currentEffectEntity = 'te' + i + '_effect';   
            currentTextImage = 'te' + i;   
            currentEntityNumber = i;
			
			// set default values into the fields
			
			//document.getElementById('te' + i).src = '../images/yourtext.gif';
			//document.getElementById('te' + i).style.display = 'inline';			
			//document.getElementById(currentTextImage + 'p').src = '../images/yourtext.gif';
            //document.getElementById(currentTextImage + 'p').width = 215 * previewscale;               
			//document.getElementById(currentTextImage + 'p').height = 29 * previewscale;               
			//document.getElementById(currentTextImage + 'p').style.display = 'inline';
										
			//highlightEntity(currentEntityNumber, true);			
			//writeTextSummary();
			//highlightTree(currentEntityNumber, true); 
			//highlightEntityWithArrow(currentEntityNumber, true);
            return; 
        }    
    }
}

function setTextDefaults() {
			//document.getElementById(currentTextEntity).value = 'Your Text';
			document.getElementById('txtElementText').value = 'Your Text';
			changefontcolor('#000000'); 
			changefontsize('1000'); 
			changefonteffect('1'); 
			changefont('1000');
			highlightEntity(0, true);
			highlightTree(0, true);
			document.getElementById('btnAddText').style.display = 'inline';
			document.getElementById('b4').style.display = 'none';
			document.getElementById('highlighter').style.display = 'none';	
			document.getElementById('lblfonttitle').innerHTML = 'Add Text';
			
}

// this function switched the font style
function changefont(as_fontnumber) { 
    
    document.getElementById('fontlabel').src = '../images/font' + as_fontnumber + '.gif';
    document.getElementById('fontmenu').style.display = 'none';
    document.getElementById(currentFontEntity).value = as_fontnumber;
}

function changefontsize(as_fontsize) {
    var temp = new String(as_fontsize);
    
    document.getElementById('sizecontrol').innerHTML = temp.substr(0,1) + '.' + temp.substr(1,3) + ' Inch';
    document.getElementById('sizemenu').style.display = 'none';
    document.getElementById(currentTextSizeEntity).value = as_fontsize;
}

function changefonteffect(ai_fonteffect) {
	var effectName = getFontEffectFriendlyName(ai_fonteffect);
    
	document.getElementById('effectcontrol').innerHTML = effectName;
    document.getElementById('effectmenu').style.display = 'none';     	    
    document.getElementById(currentEffectEntity).value = ai_fonteffect;
}

function getFontEffectFriendlyName(ai_EffectCode) {
    switch (ai_EffectCode) {
        case '0': 
            return 'No Effect';               
            break;
        case '1':
            return 'Round Up';               
            break;             
        case '2':
            return 'Round Down';               
            break;             
    }
}

function changefontcolor(as_fontcolor) {
	document.getElementById('fontcolor').style.backgroundColor = as_fontcolor;
    document.getElementById(currentTextColorEntity).value = as_fontcolor;
}

function filterString(evt) {  

    var invalidList = ";:\\{}[]@$%^*_+=><//~`|";
	var retval = true;	
	var inChar = new String()
	//var keycode;
	
	// get the keycode
	if (window.event) {
		inChar = String.fromCharCode(window.event.keyCode);
	}
	else if (evt) {
		inChar = String.fromCharCode(evt.which);
	}
		
	if (invalidList.indexOf(inChar) != -1) retval = false;
	return retval;
}

// this sends the render request off to the server
function addText() {
    var url;     
	
	document.getElementById('textWait').style.display = 'inline';
    document.getElementById(currentTextEntity).value = document.getElementById('txtElementText').value	
    url = buildRenderURL(currentEntityNumber, darkBackground);

	renderLightImages[currentEntityNumber -1].src = url;	
    
    document.getElementById(currentTextImage).style.display = 'none';
    document.getElementById(currentTextImage + 'p').style.display = 'none';	
	
    // set a timer         
    renderTicks = 0;
    renderTimer = self.setInterval('designrender()', mi_RenderTickInterval);
	noRenderCallsMade = false;
	setTipMessage(1);			
}

// timer function to check on the rendering progress
function designrender(){
    renderTicks++;
	
    var url;	

        if (renderLightImages[currentEntityNumber -1].complete) {
            window.clearInterval(renderTimer);            
            document.getElementById(currentTextImage).src = renderLightImages[currentEntityNumber -1].src;

			document.getElementById(currentTextImage + 'p').src = renderLightImages[currentEntityNumber -1].src;
            document.getElementById(currentTextImage + 'p').width = renderLightImages[currentEntityNumber -1].width * previewscale;               
			document.getElementById(currentTextImage + 'p').height = renderLightImages[currentEntityNumber -1].height * previewscale;               
			document.getElementById(currentTextImage).style.display = 'inline';
			document.getElementById(currentTextImage + 'p').style.display = 'inline';
			document.getElementById('textWait').style.display = 'none';			
			
			if (document.getElementById(currentTextImage + '_position').value == '0,0,0'){
				document.getElementById(currentTextImage + '_position').value = '1,1,' + document.getElementById(currentTextImage).style.zIndex;
			}
						
			// little refresh for firefox
			document.getElementById(currentTextImage).style.display = 'none';
			document.getElementById(currentTextImage).style.display = 'inline';
			
			highlightEntityWithArrow(currentEntityNumber, true);			
        } 
    
    if (renderTicks > 20) {
        window.clearInterval(renderTimer);
    }
}

function togglePreview() {
	var i;
	
	if (document.getElementById('design').style.display == 'inline') {
		document.getElementById('design').style.display = "none";
		document.getElementById('preview').style.display = "inline";
		
		// fixes a FF bug
		for (i=1; i<6; i++) {
			document.getElementById('te' + i + 'p').style.display = 'inline';
		}
	}
	else {
		document.getElementById('design').style.display = "inline";
		document.getElementById('preview').style.display = "none";
	}
}

// this function switches to design mode
function showDesign(ls_source) {   
	document.getElementById('design').style.display = "inline";
	document.getElementById('preview').style.display = "none";
}

// this function toggles the alignment guides
function toggleGuides() {
    if (guidesOn) {
        guidesOn = false;
        document.getElementById('guides').style.backgroundImage = "url(../images/check_off.gif)";        
    }
    else {
        guidesOn = true;
        document.getElementById('guides').style.backgroundImage = "url(../images/check_on.gif)";
    }
    
}

function showGuides() {
    document.getElementById('lgguide').style.display = "inline";
    //document.getElementById('smguide').style.display = "inline";
    //document.getElementById('youthguide').style.display = "inline";
    document.getElementById('leftguide').style.display = "inline";    
}

function hideGuides() {
    document.getElementById('lgguide').style.display = "none";
    //document.getElementById('smguide').style.display = "none";
    //document.getElementById('youthguide').style.display = "none";
    document.getElementById('leftguide').style.display = "none";    
}


function hideMenus() {
	document.getElementById('ddmFile').style.display = "none";
	document.getElementById('ddmEdit').style.display = "none";
	document.getElementById('ddmDesign').style.display = "none";
	document.getElementById('ddmPreview').style.display = "none";
	document.getElementById('ddmHelp').style.display = "none";

    document.getElementById('fontmenu').style.display = "none";
    document.getElementById('sizemenu').style.display = "none";
    document.getElementById('effectmenu').style.display = "none";      
    CPPalette0.hidePopup();
    CPPalette1.hidePopup();
		
}

var mi_DDMInit = 0;

function initMenu() {
	mi_DDMInit = 0;
}

function ddmenuTrigger() {
	mi_DDMInit++;
	if (mi_DDMInit > 2) {
		document.getElementById('ddmFile').style.display = "none";
		document.getElementById('ddmEdit').style.display = "none";
		document.getElementById('ddmDesign').style.display = "none";
		document.getElementById('ddmPreview').style.display = "none";
		document.getElementById('ddmHelp').style.display = "none";
	};
}

function hideMenu(as_Item) {
	if (mi_DDMInit > 3) {
	document.getElementById(as_Item).style.display = "none";
	}
}

// builds the URL needed to render a text entity
function buildRenderURL(ai_currentEntityNumber, ab_darkBackground) { 
	var url = document.getElementById('image_server').value + '?';
    var color = new String(document.getElementById('te' + ai_currentEntityNumber + '_color').value); 
	
    var bgColor;
    if (ab_darkBackground) {
        bgColor = bgDarkColor;
    }
    else {
        bgColor = bgLightColor;
    }           
    
    url = url + 'T=' + escape(document.getElementById('te' + ai_currentEntityNumber + '_value').value) + '&';
    url = url + 'F=' + document.getElementById('te' + ai_currentEntityNumber + '_font').value + '&';
    url = url + 'S=' + document.getElementById('te' + ai_currentEntityNumber + '_size').value + '&';
    url = url + 'E=' + document.getElementById('te' + ai_currentEntityNumber + '_effect').value + '&';
    url = url + 'C=' + color.substring(1,7) + '&';   
    url = url + 'BG=' + bgColor + '&';
	url = url + 'J=' + document.getElementById('te' + ai_currentEntityNumber + '_just').value ;
	burp(url);
    return url
}

// sets up the font dialog
function changeTextEntity(as_EntityName) {
    var prefix = new String(as_EntityName);
    var entityNumber = prefix.substr(2,1);  
    prefix = prefix.substr(0,2); 
    
    changeToDialog('textprops');    

	// switching to an existing entity should show the update button
	document.getElementById('b4').style.display = 'inline';
	document.getElementById('btnAddText').style.display = 'none';	
	document.getElementById('lblfonttitle').innerHTML = 'Edit Text';
        
   // reset current entity
	currentTextEntity = 'te' + entityNumber + '_value';            
	currentTextColorEntity = 'te' + entityNumber + '_color'; 
	currentTextSizeEntity = 'te' + entityNumber + '_size'; 
	currentFontEntity = 'te' + entityNumber + '_font'; 
	currentEffectEntity = 'te' + entityNumber + '_effect';   
	currentTextImage = 'te' + entityNumber;   
	currentEntityNumber = entityNumber;
	
	// reset dialog values
	document.getElementById('txtElementText').value = document.getElementById(currentTextEntity).value;
	changefontcolor(document.getElementById(currentTextColorEntity).value); 
	changefontsize(document.getElementById(currentTextSizeEntity).value); 
	changefonteffect(document.getElementById(currentEffectEntity).value); 
	changefont(document.getElementById(currentFontEntity).value);
	writeTextSummary();
	highlightTree(currentEntityNumber, true);
	highlightEntity(entityNumber, true);
	document.getElementById('btnBackText').style.display = 'none';
	document.getElementById('b5').style.display = 'inline';	
	mb_CBCurrentEntity = 1;
	mb_deleteMenuEnabled = true;
	
	if (document.getElementById('te' + currentEntityNumber + '_just').value == 'L') {
		document.getElementById('fontjustify').style.backgroundImage = "url(../images/check_off.gif)";
	}
	else {
		document.getElementById('fontjustify').style.backgroundImage = "url(../images/check_on.gif)";
	}
}

// this function provides the opacity effect
function highlightEntity(ai_EntityNumber, ab_textEntity) {	
	var i;
	//var ls_prefix;
	var ls_bgcolor = document.getElementById('th_bgswatch').value;
	ls_bgcolor = 'transparent';
	
	
		//if (ab_textEntity) {ls_prefix =  'te'} else {ls_prefix =  'ge'}
	// entity number of 0 means make all entities full opacity
	// entity number of -1 means make all entitied low opacity
	// otherwise make only the specified number full opacity
	
	for (i=1; i<6; i++) {
		if (ai_EntityNumber == 0) {
			document.getElementById('te' + i).style.opacity = '1.0';
			document.getElementById('te' + i).style.filter = 'alpha(opacity=100)';
			document.getElementById('ge' + i).style.opacity = '1.0';
			document.getElementById('ge' + i).style.filter = 'alpha(opacity=100)';	
			

			document.getElementById('te' + i).style.border = 'none';
			document.getElementById('ge' + i).style.border = 'none';			
			document.getElementById('ge' + i).style.margin = '1 0 0 1';
			document.getElementById('te' + i).style.margin = '1 0 0 1';
			
			
		}
		else if (ai_EntityNumber == i){
			if (ab_textEntity) { 
				document.getElementById('te' + i).style.opacity = '1.0';
				document.getElementById('te' + i).style.filter = 'alpha(opacity=100)';
				document.getElementById('ge' + i).style.opacity = '.25';
				document.getElementById('ge' + i).style.filter = 'alpha(opacity=25)';				
				
				
				document.getElementById('ge' + i).style.border = 'none';
				document.getElementById('te' + i).style.border = 'dashed 1px black';
				document.getElementById('ge' + i).style.margin = '1 0 0 1';
				document.getElementById('te' + i).style.margin = '0 0 0 0';

						
			}
			else {
				document.getElementById('te' + i).style.opacity = '.25';
				document.getElementById('te' + i).style.filter = 'alpha(opacity=25)';
				document.getElementById('ge' + i).style.opacity = '1.0';
				document.getElementById('ge' + i).style.filter = 'alpha(opacity=100)';	

				document.getElementById('ge' + i).style.border = 'dashed 1px black';
				document.getElementById('te' + i).style.border = 'none';
				document.getElementById('ge' + i).style.margin = '0 0 0 0';
				document.getElementById('te' + i).style.margin = '1 0 0 1';
			}			
		}
		else if (ai_EntityNumber == -1) {
			document.getElementById('te' + i).style.opacity = '.25';
			document.getElementById('te' + i).style.filter = 'alpha(opacity=25)';
			document.getElementById('ge' + i).style.opacity = '.25';
			document.getElementById('ge' + i).style.filter = 'alpha(opacity=25)';	
			
			document.getElementById('te' + i).style.border = 'none';
			document.getElementById('ge' + i).style.border = 'none';			
			document.getElementById('ge' + i).style.margin = '1 0 0 1';
			document.getElementById('te' + i).style.margin = '1 0 0 1';


		}
		else {
			document.getElementById('te' + i).style.opacity = '.25';
			document.getElementById('te' + i).style.filter = 'alpha(opacity=25)';
			document.getElementById('ge' + i).style.opacity = '.25';
			document.getElementById('ge' + i).style.filter = 'alpha(opacity=25)';			

			document.getElementById('te' + i).style.border = 'none';
			document.getElementById('ge' + i).style.border = 'none';			
			document.getElementById('ge' + i).style.margin = '1 0 0 1';
			document.getElementById('te' + i).style.margin = '1 0 0 1';
			
			
		}				
	}	
}

function completeAddText() {
	highlightEntity(0, true);
	changeToDialog('save');
	mb_CBCurrentEntity = 0;
	mb_deleteMenuEnabled = false;
	hideMenus();
}


function deleteCurrentTextEntity() {
        currentEntityNumber = -1;		
		document.getElementById(currentTextEntity).value = '';
		document.getElementById(currentTextColorEntity).value = '';
		document.getElementById(currentTextSizeEntity).value = '';
		document.getElementById(currentFontEntity).value = '';
		document.getElementById(currentEffectEntity).value = '';
		document.getElementById(currentTextImage).src = '../images/empty.gif';
		
		document.getElementById(currentTextImage + 'p').style.display = 'none';
		document.getElementById(currentTextImage + 'p').src = '../images/empty.gif';
						
		document.getElementById(currentTextImage).style.display = 'none';			
		highlightEntity(0, true);
		document.getElementById('highlighter').style.display = 'none';
}

function savedesign() {
	var ls_Temp = new String();
	var lb_DesignOK = false;
	
	// make sure there are some elements in the the designarea
	for (i=1; i<6; i++) {
		ls_Temp = document.getElementById('te' + i + '_value').value;
		if (ls_Temp.length > 0) {lb_DesignOK = true; break;}
		ls_Temp = document.getElementById('ge' + i + '_design').value;
		if (ls_Temp.length > 0) {
			lb_DesignOK = true;
			break;
		}
	}

	if (lb_DesignOK) {
		if (thisDesignIsLocked) {
			alert('This design has been ordered previously.  A copy of the original has been made and your changes will be applied to that copy.');
		}
		
		if (validateSave()) {				
		
			if ((document.getElementById('loginStatus').value != 'Y') && (document.getElementById('optExistingAccount').checked)) {
				doAjaxLogin(document.getElementById('txtEmail').value, document.getElementById('txtPassword1').value);
				renderTicks = 0;
				ms_LoginSuccessful = '';
				renderTimer = self.setInterval('checkForLogin()', mi_AjaxTickInterval);				
			}
			else {
				document.Form1.submit();
			}				
		}
	}
	else {
		alert('You must add text or graphics to your design before you can save it.');
	}
}

function checkForLogin() {
	renderTicks++;
	
	if (ms_LoginSuccessful.length > 0) {
		window.clearInterval(renderTimer);
		
		if (ms_LoginSuccessful == 'Y') {
			document.Form1.submit();
		}
		else {
			alert('Unable to login, please check your E-Mail address and password and try again.');
		}		
	}	
	
    if (renderTicks > 20) {
        window.clearInterval(renderTimer);
		alert('Unable to login, please check your E-Mail address and password and try again.');
    }	
}

function cancelsave() {
	hideMenus();
    changeToDialog('intro');					
}

function validateSave() {
	var lb_oktosave = true;
	var ls_message = '';	
	var ls_DesignName = new String(document.getElementById('txtDesignName').value);
	var ls_Email = new String(document.getElementById('txtEmail').value);
	var ls_Password1 = new String(document.getElementById('txtPassword1').value);
	var ls_Password2 = new String(document.getElementById('txtPassword2').value);
	var ls_Zip = new String(document.getElementById('txtZip').value);
	var ls_Approval = new String(document.getElementById('txtApproval').value);
	var ls_LoginStatus = document.getElementById('loginStatus').value;
	
	if (ls_DesignName.length == 0) { 
		lb_oktosave = false; 
		ls_message = 'Please enter a design name.';
	}
	
	if (ls_LoginStatus != 'Y') {
		if (ls_Email.length == 0) { 
			lb_oktosave = false; 
			ls_message = 'Please enter your email address.';
		}

		if (ls_Password1.length == 0) { 
			lb_oktosave = false; 
			ls_message = 'Please enter your password.';
		}		
		
		if (!document.getElementById('optExistingAccount').checked) {
			if (ls_Password1.toUpperCase == ls_Password2.toUpperCase) { 
			}
			else {
				lb_oktosave = false; 
				ls_message = 'The passwords you entered do not match.';
			}
			
			if ((ls_Zip.length != 5) && (!isNaN(parseInt(ls_Zip)))) {                               
				lb_oktosave = false; 
				ls_message = 'Please enter a valid 5 digit zip code.';
			}		
		}
	}
	
	if (ls_Approval.length == 0) { 
		lb_oktosave = false; 
		ls_message = 'You must enter your initials to approve this design.';
	}

	if (lb_oktosave) {
		return true;
	}
	else {
		alert(ls_message);
		return false;
	}
	
}

function toggleSaveFields() {
	if (document.getElementById('optExistingAccount').checked) {
		document.getElementById('txtPassword2').style.display = 'none';
		document.getElementById('lblPassword2').style.display = 'none';
		document.getElementById('txtZip').style.display = 'none';
		document.getElementById('lblZip').style.display = 'none';		
		document.getElementById('lblContactName').style.display = 'none';
		document.getElementById('txtContactName').style.display = 'none';		
		document.getElementById('lblOptin').style.display = 'none';
		document.getElementById('chkOptin').style.display = 'none';		
		document.getElementById('form_action').value = 'SAVE_EXISTING';
	}
	else {
		document.getElementById('txtPassword2').style.display = 'inline';
		document.getElementById('lblPassword2').style.display = 'inline';
		document.getElementById('txtZip').style.display = 'inline';
		document.getElementById('lblZip').style.display = 'inline';	
		document.getElementById('lblContactName').style.display = 'inline';
		document.getElementById('txtContactName').style.display = 'inline';		
		document.getElementById('lblOptin').style.display = 'inline';
		document.getElementById('chkOptin').style.display = 'inline';
		document.getElementById('form_action').value = 'SAVE_NEW';
	}
}

function writeTextSummary() {
	var ls_Output = new String('<ul class=\"tree\">');
	var ls_Temp = '';
	var ls_Value = '';
	var ls_ListItem = new String('<li class=\"{0}\"><a href=\"#b\" onclick=\"textZup(%3%);\"><img title=\"Move Text To Front\" border=\"0\" src=\"../images/zup_off.gif\" id=\"ztup%3%\" onmouseover=\"zhover(\'ztup%3%\');\" onmouseout=\"zclearhover(\'ztup%3%\');\"></a><a id=\"texttree%3%\" href=\"#\" onClick=\"changeTextEntity(\'{1}\');\">{2}</a></li>');
	var ls_AddNewText = new String('<li class=\"bottree\"><a href=\"#\" onClick=\"clicked(1);\">Add &#187;</a></li>');
	var i;
	var li_Count = 0;
	var zIndexArray = new Array(4);
	var li_nextEntity;
	
	for (i=0; i<5; i++) {
		zIndexArray[64 - zText[i]] = i;
	}
	
	for (i=1; i<6; i++) {	
		
		li_nextEntity = zIndexArray[i - 1] + 1;		
		ls_Value = document.getElementById('te' + li_nextEntity + '_value').value;
		
		if (ls_Value.length > 16) {
			ls_Value = ls_Value.substr(0,13) + '...';
		}
				
		if (ls_Value.length > 0) {			
			ls_Temp = new String(ls_ListItem);			
						
			if (li_Count == 0) {
				ls_Temp = ls_Temp.replace('{0}', 'toptreetext');
			}
			else if (i == 5) {
				ls_Temp = ls_Temp.replace('{0}', 'bottree');
			}
			else {
				ls_Temp = ls_Temp.replace('{0}', 'midtree');
			}	
			
			ls_Temp = ls_Temp.replace('{1}', 'te' + li_nextEntity);					
			ls_Temp = ls_Temp.replace('{2}', ls_Value);
			ls_Temp = ls_Temp.replace(/%3%/gi, li_nextEntity);
								
			ls_Output = ls_Output.concat(ls_Temp);	
			li_Count++;					
		}			
		ls_Temp = '';
	}
	
	// add the 'add more text link'
	//if (li_Count < 5) {
	//	ls_Output = ls_Output.concat(ls_AddNewText);
	//}
	
	ls_Output = ls_Output.concat('</ul>');	
	document.getElementById('textsummary').innerHTML = ls_Output;	
}

function highlightTree(ai_EntityNumber, ab_Text) {
	var i;
	var ls_Entity;
	
	if (ab_Text) {
		ls_Entity = 'texttree';
	} 
	else {
		ls_Entity = 'graphictree';
	}
	
	for (i=1; i<6; i++) {	
	
		if (i == ai_EntityNumber) {
			document.getElementById(ls_Entity + i).style.background = 'yellow';
		}
		else {
				try {
				document.getElementById(ls_Entity + i).style.background = 'transparent';
				}	
				catch(e) {
					return; 
				}
		}		
	}
}

function loadDesign() {

	var i;
	var li_top;
	var li_left;
	var li_zindex;
	var li_Temp;
	var ls_Position = new String('');
	var ls_grapicsPath = document.getElementById('graphicsPath').value;
	var li_FirstRenderLocation = -1;
		
	// initialize
	renderQueue = new Array(9);

	// build all the Text URL's
	for (i=1; i<6; i++) {
	
		ls_text = new String(document.getElementById('te' + i + '_value').value);
		
		if (ls_text.length > 0) {
			renderQueue[i - 1] = buildRenderURL(i, false);			

			// position the elements
			ls_Position = document.getElementById('te' + i + '_position').value;
			li_Temp	= ls_Position.split(','); 	
			document.getElementById('te' + i).style.left = li_Temp[0];
			document.getElementById('te' + i).style.top = li_Temp[1];
			document.getElementById('te' + i).style.zindex = li_Temp[2];
			document.getElementById('te' + i + 'p').style.top = (li_Temp[1] * previewscale) + previewYOffset; 
			document.getElementById('te' + i + 'p').style.left = (li_Temp[0] * previewscale) + previewXOffset; 			
			if (li_FirstRenderLocation == -1) {li_FirstRenderLocation = i - 1};
		}
		else {
			renderQueue[i - 1] = '';						
		}			
	}
	
	// set the graphic url's
	for (i=1; i<6; i++) {
		ls_text = new String(document.getElementById('ge' + i + '_design').value);
		
	
		if (ls_text.length > 0) {		
			if (document.getElementById('ge' + i + '_upload').value == 'N') {
				renderQueue[(i + 5) - 1] = ls_grapicsPath + ls_text;
				if (li_FirstRenderLocation == -1) {li_FirstRenderLocation = (i + 5) - 1};
			}
			else {
				renderQueue[(i + 5) - 1] = document.getElementById('userUploadPath').value + ls_text;
				
				// also configure the image upload section
				document.getElementById('uploadPath').value = ls_text;
				document.getElementById('lblUpload').style.display = 'none';
				document.getElementById('btnAddUpload').style.display = 'inline';
				document.getElementById('btnUpload').style.display = 'none';
				document.getElementById('btnBackUpload').style.display = 'none';		
				document.getElementById('imgUploadThumbnail').src = document.getElementById('userUploadPath').value + ls_text;
				document.getElementById('uploadThumbnail').style.display = 'inline';
				document.getElementById('btnRemoveUpload').style.display = 'inline';
				//document.getElementById('lblLowQ').style.display = 'inline';
				if (li_FirstRenderLocation == -1) {li_FirstRenderLocation = (i + 5) - 1};				
			}				
		
			// position graphics
			ls_Position = document.getElementById('ge' + i + '_position').value;
			li_Temp	= ls_Position.split(','); 	
			document.getElementById('ge' + i).style.left = li_Temp[0];
			document.getElementById('ge' + i).style.top = li_Temp[1];
			document.getElementById('ge' + i).style.zindex = li_Temp[2];
			document.getElementById('ge' + i + 'p').style.top = (li_Temp[1] * previewscale) + previewYOffset; 
			document.getElementById('ge' + i + 'p').style.left = (li_Temp[0] * previewscale) + previewXOffset; 						
		}
		else {			
			renderQueue[(i + 5) - 1] = '';			
		}		
	}
	
	// set pointer to the current image being rendered and load first image
	if (li_FirstRenderLocation > -1) {
		renderQueueLocation(li_FirstRenderLocation);
		renderQueueIndex = li_FirstRenderLocation;
		renderTimer = self.setInterval('queueRender()', mi_RenderTickInterval);	
	}	
	else {
		changeToDialog('save');	
	}
}

function queueRender() {
	var lb_renderComplete = false;
	var li_nextURLIndex = 0;
	var i;
	var ls_Size;
	var lsng_ScaleFactor;
	ls_text = new String('');
	
	// check to see if the current image has completed rendering	
	if (renderQueueIndex < 5) {
		if ((renderLightImages[currentEntityNumber - 1].complete)&&(renderLightImages[currentEntityNumber - 1].width > 1)){
			renderQueue[renderQueueIndex] = '';
			lb_renderComplete = true;
		}
	}
	else {
		if ((graphicImages[currentEntityNumber - 1].complete)&&(graphicImages[currentEntityNumber - 1].width > 1)) {
			renderQueue[renderQueueIndex] = '';
			lb_renderComplete = true;
			//burp('render complete: ' + renderQueueIndex);
		}				
	}	
	
	// if the previous render is complete then process the next one
	if (lb_renderComplete) {
	
		// select the next URL to render
		renderQueueIndex = getNextURLinQueue();		
		
		if (renderQueueIndex != -1) {
			renderQueueLocation(renderQueueIndex);
			renderTimeoutCount = 0;							
		}
		else {
			window.clearInterval(renderTimer);
			
			// resize text
			for (i=1; i<6; i++) {
				ls_text = document.getElementById('te' + i + '_value').value;
				
				if (ls_text.length > 0) {
					document.getElementById('te' + i).style.display = 'none';			
					document.getElementById('te' + i + 'p').style.display = 'none';	
					document.getElementById('te' + i).src = renderLightImages[i -1].src;
					document.getElementById('te' + i + 'p').src = renderLightImages[i -1].src;
					document.getElementById('te' + i + 'p').width = renderLightImages[i -1].width * previewscale;               
					document.getElementById('te' + i + 'p').height = renderLightImages[i -1].height * previewscale; 				
					writeTextSummary();
					document.getElementById('te' + i).style.display = 'inline';			
					document.getElementById('te' + i + 'p').style.display = 'inline';	
				}				
			}
			
			// resize graphics
			for (i=1; i<6; i++) {
				ls_text = document.getElementById('ge' + i + '_design').value;
				
				if (ls_text.length > 0) {
					document.getElementById('ge' + i).style.display = 'none';			
					document.getElementById('ge' + i + 'p').style.display = 'none';	
					document.getElementById('ge' + i).src = graphicImages[i - 1].src;
					document.getElementById('ge' + i + 'p').src = graphicImages[i - 1].src;	

					//burp('assign src: ' + graphicImages[i - 1].src);
		
					li_size = document.getElementById('ge' + i + '_size').value;
					lsng_ScaleFactor = getScale(li_size);
					document.getElementById('ge' + i).width = graphicImages[i - 1].width * lsng_ScaleFactor;

					//burp('width: ' + graphicImages[i - 1].width);
					
					document.getElementById('ge' + i + 'p').width = (graphicImages[i - 1].width  * lsng_ScaleFactor) * previewscale;               								
					writeTextSummary();
					document.getElementById('ge' + i).style.display = 'inline';			
					document.getElementById('ge' + i + 'p').style.display = 'inline';					
				}				
			}			
			
			changeToDialog('save');	
			mb_MenuEnabled = true;
		}					
	}
	else {
		// handle rendering timeout
		if (renderTicks > 20) {
			window.clearInterval(renderTimer);
			//burp('initial timeout');
			
			if (renderTimeoutCount > 5) {				
				window.clearInterval(renderTimer);				
			}
			else {							
				// resend the request
				li_nextURLIndex = getNextURLinQueue;
				renderQueueLocation(li_nextURLIndex);
				renderTimeoutCount++;	
				renderTicks = 0;
			}			
		}
		else {
			renderTicks++;
		}
	}	
}

// determines the next url to render returns -1 for empty
function getNextURLinQueue() {
	var i;
	var ls_Temp = new String('');
	
	for (i=0; i<10; i++) {
		ls_Temp = renderQueue[i];
		
		if (ls_Temp.length > 0) {
			return i;
		}
	}	
	return -1;
}

// renders a location in the render queue into the correct image array
function renderQueueLocation(ai_Index) {	
	
	if (ai_Index < 5)	{
		renderLightImages[ai_Index].src = renderQueue[ai_Index];
		//burp('render text:' + renderQueue[ai_Index]);
	}
	else {
		graphicImages[ai_Index - 5].src = renderQueue[ai_Index];
		//burp('render graphic:' + renderQueue[ai_Index]);
	}	
}

var searchResultsImages;
var searchResultsSizes;
var searchResultsSource;

// keyword image search
function imagesearch(ai_Category) {		
	var ls_Keyword = new String(document.getElementById('txtImageSearch').value);

	if ((ls_Keyword.length == 0)&&(ai_Category == -1)) {
		alert('Please enter a keyword to search for.');
	}
	else {
		imageSearchResults = '';
		searchForGraphics(ls_Keyword, 255, ai_Category);		
		renderTicks = 0;
		renderTimer = self.setInterval('imageSearchHandler()', mi_AjaxTickInterval);
	}

}

function imageSearchHandler() {	
	var ls_temp;
	var ls_record;
	var ls_image;
	var ls_sizes;
	var ls_source;	
	var ls_grapicsPath = document.getElementById('graphicsPath').value;

	if (imageSearchResults.length > 0) {		
		window.clearInterval(renderTimer);
		
		if (imageSearchResults == 'NO ITEMS FOUND') {
			changeToDialog('imagesearch');
			alert('No images were found.');			
		}
		else {
			ls_temp = imageSearchResults.split('|');
			searchResultsImages = new Array(ls_temp.length - 1);
			searchResultsSizes = new Array(ls_temp.length - 1);
			searchResultsSource = new Array(ls_temp.length - 1);

			for (i=0; i<=ls_temp.length - 1; i++) {
				var ls_record = ls_temp[i].split(',');	
				searchResultsImages[i] = ls_record[0];
				searchResultsSizes[i] = ls_record[1];
				searchResultsSource[i] = ls_record[2];		
			}

			buildSearchResults(1);
			
			if (Math.ceil(searchResultsImages.length/(pi_searchrowsPerPage * pi_searchColumnsperpage)) > 1) {
				mi_NumberSearchPages = Math.ceil(searchResultsImages.length/(pi_searchrowsPerPage * pi_searchColumnsperpage));
				if (mi_NumberSearchPages > 1) {
					buildPager(mi_NumberSearchPages, -1);	
					document.getElementById('resultspager').style.display = 'inline';
				}
			}		
			else {
				document.getElementById('resultspager').style.display = 'none';
			}
			setGraphicEditMode(false);
			
			document.getElementById('resultlabel').innerHTML = 'Keyword Search: ' + document.getElementById('txtImageSearch').value;
			changeToDialog('imageresults');	
			document.getElementById('resultspane').scrollTop = 0;			
		}		
	}

    if (renderTicks > 20) {
        window.clearInterval(renderTimer);
    }	
}

function catsearch(ai_category) {
	changeToDialog('imagedetails');
}

var currentSearchImage = -1;

function selectimage(ai_imageindex) {
	var li_source = searchResultsSource[ai_imageindex];
	var li_sizes = searchResultsSizes[ai_imageindex];
	var ls_image = searchResultsImages[ai_imageindex];
	var ls_design = searchResultsImages[ai_imageindex].slice(searchResultsImages[ai_imageindex].lastIndexOf('/')+1) ;
	var ls_grapicsPath = document.getElementById('graphicsPath').value;
	currentSearchImage = ai_imageindex;
	
	document.getElementById('searchimagethumb').src = ls_grapicsPath + ls_image;	
	document.getElementById('lblDesignData').innerHTML = ls_design;
	
	if (li_source == 1) {
		document.getElementById('lblSourceData').innerHTML = "<a href=\"http://www.openclipart.org\" target=\"blank\">www.OpenClipart.org</a>";
	}
	else {
		document.getElementById('lblSourceData').innerHTML = "Corporate Casuals";	
	}
	
	writeGraphicSummary();	
	graphicSizeLogic(0, li_sizes);
	changeToDialog('imagedetails');
	currentGraphicEntityNumber = -1;
	setTipMessage(4);
}

var pi_searchrowsPerPage = 3;
var pi_searchColumnsperpage = 5;

function buildSearchResults(ai_Page) { 
	var li_leftColumn = 1;
	var li_rightColumn = 150;
	var li_rowSpacing = 115;
	var li_top = 1;
	var li_ColumnSpacing = 150;
	
	var ls_Template = "<img title=\"Click To View Image Details\" width=\"120\" height=\"100\" style=\"position: absolute\; top: {0}\; left: {1}\;\" src=\"{2}\" onclick=\"selectimage({3})\" onmouseover=\"this.style.border = 'solid 1px blue'\;\" onmouseout=\"this.style.border = 'none'\;\">";
	var ls_Footer = "<img style=\"position: absolute\; top: 435\; left: 100\;\" src=\"../images/empty.gif\" height=\"15\">"	
	//var ls_noResults = "<img width=\"75\" style=\"position: absolute\; top: XXX\; left: XXX\;\" src=\"../images/noresults.gif\" >";
	var ls_ImageURL = '';
	var li_Row;	
	var li_Column;
	var ls_SearchResults = new String('');
	var i;
	var ls_temp;
	var li_index;
	var li_MaxPages;
	var li_rowTop;
	var li_rowleft;
	var ls_grapicsPath = document.getElementById('graphicsPath').value;
		
	// handle out of range page requests
	li_MaxPages = Math.ceil(searchResultsImages.length/(pi_searchrowsPerPage * pi_searchColumnsperpage));
	if (ai_Page > li_MaxPages) {
		ai_Page = li_MaxPages;
	}
	
	if (ai_Page < 0) {
		ai_Page = 0;
	}
	
	// get starting index
	li_index = (pi_searchrowsPerPage * pi_searchColumnsperpage) * (ai_Page - 1)
	
	li_rowTop = li_top;
	li_rowleft = li_leftColumn;
	li_Row = 0;
	li_Column = 0;
	
	for (li_Row=0; li_Row<=pi_searchrowsPerPage-1; li_index++) {
	
		if (li_index <= searchResultsImages.length -1) {
			ls_temp = ls_Template.replace('{0}', li_rowTop);
			ls_temp = ls_temp.replace('{1}', li_rowleft);
			ls_temp = ls_temp.replace('{2}', ls_grapicsPath + searchResultsImages[li_index]);
			ls_temp = ls_temp.replace('{3}', li_index);		
			ls_SearchResults = ls_SearchResults.concat(ls_temp);		
		}
				
		li_Column++;
		if (li_Column == pi_searchColumnsperpage) {
			//burp('column new');
			li_Row++;
			li_Column = 0;
		}
		
		li_rowTop = (li_Row * li_rowSpacing) + li_top;
		li_rowleft = (li_Column * li_ColumnSpacing) + li_leftColumn;					
	}

	// write the results
	document.getElementById('resultspane').innerHTML = ls_SearchResults + ls_Footer;	
	document.getElementById('resultspane').scrollTop = 0;
}

function writeGraphicSummary() {
	var ls_Output = new String('<ul class=\"tree\">');
	var ls_Temp = '';
	var ls_Value = '';	
	var ls_ListItem = new String('<li class=\"{0}\"><a href=\"#b\" onclick=\"graphicZup(%3%);\"><img title=\"Move Graphic To Front\" border=\"0\" src=\"../images/zup_off.gif\" id=\"zgup%3%\" onmouseover=\"zhover(\'zgup%3%\');\" onmouseout=\"zclearhover(\'zgup%3%\');\"></a><a onmouseover=\"hoverPic(%3%, true, this, false);\" onmouseout=\"hoverPic(%3%, false, this, false);\" id=\"graphictree%3%\" href=\"#\" onClick=\"changeGraphicEntity(\'{1}\');\">{2}</a></li>');
	var ls_AddNewText = new String('<li class=\"bottree\"><a href=\"#\" onClick=\"clicked(2);\">Add &#187;</a></li>');
	var i;
	var li_Count = 0;
	var zIndexArray = new Array(4);
	var li_nextEntity;
	
	for (i=0; i<5; i++) {
		zIndexArray[54 - zGraphic[i]] = i;
	}
		
	for (i=1; i<6; i++) {
	
		li_nextEntity = zIndexArray[i - 1] + 1;		
		
		if (document.getElementById('ge' + li_nextEntity + '_upload').value	== 'N') {
			ls_Value = document.getElementById('ge' + li_nextEntity + '_design').value;
			ls_Value = ls_Value.slice(0,ls_Value.indexOf('/'));
			if (ls_Value.length > 0) {ls_Value = li_nextEntity + ': ' + ls_Value.slice(0,1).toUpperCase()  + ls_Value.slice(1)};
		}
		else {
			ls_Value = 'User Upload';
		}
				
		if (ls_Value.length > 0) {			
			ls_Temp = new String(ls_ListItem);			
						
			if (li_Count == 0) {
				ls_Temp = ls_Temp.replace('{0}', 'toptreegraphic');
			}
			else if (i == 5) {
				ls_Temp = ls_Temp.replace('{0}', 'bottree');
			}
			else {
				ls_Temp = ls_Temp.replace('{0}', 'midtree');
			}	
			
			ls_Temp = ls_Temp.replace('{1}', 'ge' + li_nextEntity);					
			ls_Temp = ls_Temp.replace('{2}', ls_Value);			
			ls_Temp = ls_Temp.replace(/%3%/gi, li_nextEntity);
														
			ls_Output = ls_Output.concat(ls_Temp);	
			li_Count++;					
		}			
		ls_Temp = '';
	}
	
	// add the 'add more text link'
	//if (li_Count < 5) {
	//	ls_Output = ls_Output.concat(ls_AddNewText);
	//}
	
	ls_Output = ls_Output.concat('</ul>');	
	document.getElementById('graphicsummary').innerHTML = ls_Output;	
}

function hoverPic(ai_EntityNumber, ab_Show, ao_Object, ab_text) {
	
	
	if (ab_text) {
	
	}
	else {
		if (ab_Show) {
			document.getElementById('imgHover').src = graphicImages[ai_EntityNumber - 1].src;
			document.getElementById('imgHover').style.top = 235 + ao_Object.offsetTop;
			document.getElementById('imgHover').style.left = 645 + ao_Object.offsetLeft;
			document.getElementById('imgHover').style.display = 'inline';			
			document.getElementById('imgHover').style.width = 60;
			document.getElementById('imgHover').style.height = 50;	
		}
		else {
			document.getElementById('imgHover').style.display = 'none';
		}	
	}
}

function changeSearchPage(ai_PageNumber) {
	
	// next page
	if (ai_PageNumber == 9999) {
		mi_currentSearchPage++;
	}
	else if (ai_PageNumber == 0) {
		mi_currentSearchPage--;
	}
	else {
		mi_currentSearchPage = ai_PageNumber;
	}
		
	// handle limits
	if (mi_currentSearchPage > lastSearchPage) {mi_currentSearchPage = lastSearchPage};
	if (mi_currentSearchPage <= 0) {mi_currentSearchPage = 1};
	
	// toggle the current page	
	buildPager(mi_NumberSearchPages, mi_currentSearchPage);
	buildSearchResults(mi_currentSearchPage);		
}

var mi_PagerMin = 1;
var mi_PagerMax = 5;
var mi_PagerLSP = 2;
var mi_PagerHSP = 4;
var mi_LastShownPage = 1;

function buildPager(ai_MaxPages, ai_Page) {	
	var ls_template = "<a id=\"btnPager%0%\" href=\"#p%0%\" class=\"glasspagebutton\" onclick=\"changeSearchPage(%0%)\" >%1%</a>";
	var ls_template;
	var ls_Pager = new String('');
	var i;
	var lb_Redraw = false;
	mi_CurrentPagerNumber = ai_Page;	
	lastSearchPage = ai_MaxPages;
			
	//init pager
	if (ai_Page == -1) {
		mi_PagerMin = 1;
		mi_PagerMax = 5;
		mi_PagerLSP = 2;
		mi_PagerHSP = 4;
		lb_Redraw = true;
		ai_Page = 1;
		if (mi_PagerMax > lastSearchPage) {mi_PagerMax = lastSearchPage};
	}
			
	if (ai_Page > lastSearchPage) {ai_Page = lastSearchPage};
	if (ai_Page < 1) {ai_Page = 1};
	
	// see if we need to redraw the pager
    if (ai_Page < mi_PagerLSP) {
	
		if (ai_Page != 1) {
			
			mi_PagerMin = ai_Page - 3;
			if (mi_PagerMin < 1) {mi_PagerMin = 1};
			mi_PagerLSP = mi_PagerMin + 1;
			mi_PagerMax = mi_PagerMin + 5;			
			if (mi_PagerMax > lastSearchPage) {mi_PagerMax = lastSearchPage};
			mi_PagerHSP = mi_PagerMax - 1;
			lb_Redraw = true;
		}
	}
	else if(ai_Page > mi_PagerHSP) {
		
		if (ai_Page != lastSearchPage) {
			
			mi_PagerMax = ai_Page + 3;
			if (mi_PagerMax > lastSearchPage) {mi_PagerMax = lastSearchPage};
			mi_PagerHSP = mi_PagerMax - 1;			
			lb_Redraw = true; 
			mi_PagerMin = mi_PagerMax - 5;
			if (mi_PagerMin < 1) { mi_PagerMin = 1};
			mi_PagerLSP = mi_PagerMin + 1;
		}
	}
			
	if (lb_Redraw) {
		// add the "last" button
		ls_Temp = ls_template.replace(/%0%/gi, '9999');
		ls_Temp = ls_Temp.replace(/%1%/gi, '&#187;');
		ls_Pager = ls_Pager.concat(ls_Temp);
		
		// add the page buttons
		for(i=mi_PagerMax; i>=mi_PagerMin; i--){
			ls_Temp = ls_template.replace(/%0%/gi, i);
			ls_Temp = ls_Temp.replace(/%1%/gi, i);
			ls_Pager = ls_Pager.concat(ls_Temp);
		}
			
		// add the first buttons
		ls_Temp = ls_template.replace(/%0%/gi, '0');
		ls_Temp = ls_Temp.replace(/%1%/gi, '&#171;');
		ls_Pager = ls_Pager.concat(ls_Temp);	
		
		document.getElementById('resultspager').innerHTML = ls_Pager;		
	}
	
	// select the first page
	if (!lb_Redraw) {document.getElementById('btnPager' + mi_LastShownPage).style.backgroundImage = "url(../images/pagenumber_off.gif)"};
	mi_LastShownPage = ai_Page;
	mi_currentSearchPage = ai_Page;
	document.getElementById('btnPager' + ai_Page).style.backgroundImage = "url(../images/pagenumber_on.gif)";
	document.getElementById('btnPager0').style.backgroundImage = "url(../images/pagenumber_off.gif)";
	document.getElementById('btnPager9999').style.backgroundImage = "url(../images/pagenumber_off.gif)";
}

function showSearch() {
	changeToDialog('imageresults');
}

function setGraphicEditMode(ab_EditExistingGraphic) {
	if (ab_EditExistingGraphic) {
		document.getElementById('btnDeleteGraphic').style.display = 'inline';
		document.getElementById('btnBackSearch').style.display = 'none';
		document.getElementById('btnAddGraphic').style.display = 'none';
		document.getElementById('btnUpdateGraphic').style.display = 'inline';
	}
	else { 
		document.getElementById('btnDeleteGraphic').style.display = 'none';
		document.getElementById('btnBackSearch').style.display = 'inline';
		document.getElementById('btnAddGraphic').style.display = 'inline';
		document.getElementById('btnUpdateGraphic').style.display = 'none';
	}
}

function addGraphic() {
	var i;
	var ls_sizeElement;
	var ls_grapicsPath = document.getElementById('graphicsPath').value;
	setTipMessage(1);	
		
	// determine what the next open graphic slot
    for (i=1; i<6; i++) {
        temp = document.getElementById('ge' + i + '_design').value;
        
        if (temp.length == 0) {
		
			currentGraphicEntityNumber = i;			
			//burp('add: ' + document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex);			
			currentGraphicEntity = 'ge' + i;
		
			document.getElementById('ge' + currentGraphicEntityNumber + '_size').value = '128'
			
			if (currentSearchImage != -1) {
				document.getElementById('ge' + i + '_availsize').value = searchResultsSizes[currentSearchImage];		
				document.getElementById('ge' + i + '_design').value = searchResultsImages[currentSearchImage]; 		
				document.getElementById('ge' + i + '_upload').value = 'N'; 	

				// add the graphic to the image array and scale it based on the selected sizemenu
				graphicImages[currentGraphicEntityNumber - 1].src = ls_grapicsPath + searchResultsImages[currentSearchImage];
				//document.getElementById('ge' + currentGraphicEntityNumber).src = ls_grapicsPath + searchResultsImages[currentSearchImage];
				
				renderTicks = 0;
				setGraphicEditMode(true);
				
				renderTimer = self.setInterval('addGraphicTimer()', mi_RenderTickInterval);			
				break; 
			}			
			else {
				document.getElementById('ge' + i + '_availsize').value = 135;		
				document.getElementById('ge' + i + '_design').value = document.getElementById('uploadPath').value; 	
				document.getElementById('ge' + i + '_upload').value = 'Y'; 	
			
				// add the graphic to the image array and scale it based on the selected sizemenu
				graphicImages[currentGraphicEntityNumber - 1].src = document.getElementById('userUploadPath').value + document.getElementById('uploadPath').value;
				renderTicks = 0;
				setGraphicEditMode(true);
				renderTimer = self.setInterval('addGraphicTimer()', mi_RenderTickInterval);			
				break; 			
			}
        }    
    }	
	
	// replace the zIndex on the last selected graphic
	if (mi_OldZindex != -1) {
		document.getElementById(ms_LastSelectedElement).style.zIndex = mi_OldZindex;	
	}
	
	// record the proper z-index so we can put it back later
	mi_OldZindex = document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex;
	ms_LastSelectedElement = 'ge' + currentGraphicEntityNumber;	
	document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex = 99;
	
	//burp('AddGraphic: ' + currentGraphicEntityNumber);
	//burp('add2: ' + document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex);			
}

function addGraphicTimer() {

	if (graphicImages[currentGraphicEntityNumber - 1].complete) {
		window.clearInterval(renderTimer);  	
		document.getElementById('ge' + currentGraphicEntityNumber).src = graphicImages[currentGraphicEntityNumber - 1].src;
		document.getElementById('ge' + currentGraphicEntityNumber).style.display = 'inline';
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').src = graphicImages[currentGraphicEntityNumber - 1].src;		
		document.getElementById('ge' + currentGraphicEntityNumber  + 'p').style.display = 'inline';
		
		setGraphicRadioSize();		
		changeGraphicSize();
		//var li_size = document.getElementById('ge' + currentGraphicEntityNumber + '_size').value;
		//var lsng_ScaleFactor = getScale(li_size);
		//burp('graphic size:' + li_size + ',' + 'scale:' + lsng_ScaleFactor + 'width:' + graphicImages[currentGraphicEntityNumber - 1].width * lsng_ScaleFactor);
		//document.getElementById('ge' + currentGraphicEntityNumber).width = (graphicImages[currentGraphicEntityNumber - 1].width * lsng_ScaleFactor);					
		//document.getElementById('ge' + currentGraphicEntityNumber + 'p').width = (graphicImages[currentGraphicEntityNumber - 1].width  * lsng_ScaleFactor) * previewscale;               								
				
		document.getElementById('ge' + currentGraphicEntityNumber).style.top = 10;
		document.getElementById('ge' + currentGraphicEntityNumber).style.left = 10;
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.top = 10 * previewscale;
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.left = 10 * previewscale;
			
		highlightEntity(currentGraphicEntityNumber, false);
		writeGraphicSummary();
		highlightTree(currentGraphicEntityNumber);
		
		writeGraphicPosition(currentGraphicEntityNumber);
		highlightEntityWithArrow(currentGraphicEntityNumber, false);					
		
	}

    if (renderTicks > 20) {
        window.clearInterval(renderTimer);
    }
}


function setGraphicRadioSize() { 
	if (currentGraphicEntityNumber != -1) {
		if (document.getElementById('optSmall').checked) document.getElementById('ge' + currentGraphicEntityNumber + '_size').value = '1';   
		if (document.getElementById('optMedium').checked) document.getElementById('ge' + currentGraphicEntityNumber + '_size').value = '2'; 
		if (document.getElementById('optLarge').checked) document.getElementById('ge' + currentGraphicEntityNumber + '_size').value = '4'; 		
		if (document.getElementById('optXLarge').checked) document.getElementById('ge' + currentGraphicEntityNumber + '_size').value = '128'; 		
	}
}

function graphicSizeLogic(ai_currentGraphicEntityNumber, ai_sizes) {

		var li_Sizes;
		var ls_SelectedSize;
		var ls_FirstSize = new String('');
		
		if (ai_currentGraphicEntityNumber == 0) {
			ls_SelectedSize = 0;
		}
		else {
			ls_SelectedSize = document.getElementById('ge' + ai_currentGraphicEntityNumber + '_size').value;
		}
		
		if (ai_sizes > 0){
			li_Sizes = ai_sizes;
		}
		else {
			li_Sizes = document.getElementById('ge' + ai_currentGraphicEntityNumber + '_availsize').value;
		}
	
		document.getElementById('optSmall').style.display = 'none';
		document.getElementById('lblSmall').style.display = 'none';	
		document.getElementById('optMedium').style.display = 'none';
		document.getElementById('lblMedium').style.display = 'none';			
		document.getElementById('optLarge').style.display = 'none';
		document.getElementById('lbllarge').style.display = 'none';
		document.getElementById('optXLarge').style.display = 'none';
		document.getElementById('lblxlarge').style.display = 'none';		

	if ((li_Sizes & 128) > 0) { 
		document.getElementById('optXLarge').style.display = 'inline';
		document.getElementById('lblxlarge').style.display = 'inline';	
		if ((ls_FirstSize.length == 0) || (ls_SelectedSize == 128)) ls_FirstSize = 'optXLarge'; 
	}

	if ((li_Sizes & 1) > 0) {
		document.getElementById('optSmall').style.display = 'inline';
		document.getElementById('lblSmall').style.display = 'inline';	
		if ((ls_FirstSize.length == 0) || (ls_SelectedSize == 1)) ls_FirstSize = 'optSmall';  
	}
	
	if ((li_Sizes & 2) > 0) {
		document.getElementById('optMedium').style.display = 'inline';
		document.getElementById('lblMedium').style.display = 'inline';	
		if ((ls_FirstSize.length == 0) || (ls_SelectedSize == 2)) ls_FirstSize = 'optMedium';  
	}
	
	if ((li_Sizes & 4) > 0) { 
		document.getElementById('optLarge').style.display = 'inline';
		document.getElementById('lbllarge').style.display = 'inline';	
		if ((ls_FirstSize.length == 0) || (ls_SelectedSize == 4)) ls_FirstSize = 'optLarge'; 
	}	

	if (ls_FirstSize.length > 0) {
		document.getElementById(ls_FirstSize).checked = true;
	}
}

function changeGraphicEntity(as_GraphicEntity) { 

    var prefix = new String(as_GraphicEntity);
    var entityNumber = prefix.substr(2,1);  
	var ls_grapicsPath = document.getElementById('graphicsPath').value;
    prefix = prefix.substr(0,2); 
    
	currentGraphicEntity = as_GraphicEntity;
	currentGraphicEntityNumber = entityNumber;
	
	
	// replace the zIndex on the last selected graphic
	if (mi_OldZindex != -1) {
		document.getElementById(ms_LastSelectedElement).style.zIndex = mi_OldZindex;	
	}	

	if (document.getElementById('ge' + currentGraphicEntityNumber + '_upload').value =='N') {
		document.getElementById('searchimagethumb').src = ls_grapicsPath + document.getElementById('ge' + currentGraphicEntityNumber + '_design').value;		       
	}
	else {
		document.getElementById('searchimagethumb').src = document.getElementById('userUploadPath').value + document.getElementById('ge' + currentGraphicEntityNumber + '_design').value;		       	
	}
	
	graphicSizeLogic(currentGraphicEntityNumber, 0);
	
	writeGraphicSummary();	
	hideMenus();
	highlightEntity(entityNumber, false);
	highlightTree(currentGraphicEntityNumber, false);
	changeToDialog('imagedetails');
	setGraphicEditMode(true);
	
	// record the proper z-index so we can put it back later
	mi_OldZindex = document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex;
	ms_LastSelectedElement = 'ge' + currentGraphicEntityNumber;
	document.getElementById('ge' + currentGraphicEntityNumber).style.zIndex = 99;
	
	mb_CBCurrentEntity = 2;
	mb_deleteMenuEnabled = true;
}

function changeGraphicSize() {
	var lsng_ScaleFactor;
	var li_size = document.getElementById('ge' + currentGraphicEntityNumber + '_size').value;
	var w = document.getElementById('ge' + currentGraphicEntityNumber).width;
	var h = document.getElementById('ge' + currentGraphicEntityNumber).height;
	var t = document.getElementById('ge' + currentGraphicEntityNumber).style.top;
	var l = document.getElementById('ge' + currentGraphicEntityNumber).style.left;
	var wn = graphicImages[currentGraphicEntityNumber - 1].width;
	var hn = graphicImages[currentGraphicEntityNumber - 1].height;
	l = Number(l.replace('px',''));
	t = Number(t.replace('px',''));
	
	if (currentGraphicEntityNumber != -1) {
		lsng_ScaleFactor = getScale(li_size);
		document.getElementById('ge' + currentGraphicEntityNumber).style.height = Math.round(hn * lsng_ScaleFactor);
		document.getElementById('ge' + currentGraphicEntityNumber).style.width =  Math.round(wn * lsng_ScaleFactor);
		
		document.getElementById('ge' + currentGraphicEntityNumber).style.left = l + ((w - (wn * lsng_ScaleFactor))/2);
		document.getElementById('ge' + currentGraphicEntityNumber).style.top = t + ((h - (hn * lsng_ScaleFactor))/2);

		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.width = (wn * lsng_ScaleFactor) * previewscale;
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.height = (hn * lsng_ScaleFactor) * previewscale;
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.left = (l + ((w - (wn * lsng_ScaleFactor))/2)) * previewscale;
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.top = (t + ((h - (hn * lsng_ScaleFactor))/2))  * previewscale;

		// make sure we didnt position graphics out of the work area
		l = document.getElementById('ge' + currentGraphicEntityNumber).style.left;
		t = document.getElementById('ge' + currentGraphicEntityNumber).style.top;
		w = document.getElementById('ge' + currentGraphicEntityNumber).width;
		h = document.getElementById('ge' + currentGraphicEntityNumber).height;
		l = Number(l.replace('px',''));
		t = Number(t.replace('px',''));
		
		if (l < 0) {
			document.getElementById('ge' + currentGraphicEntityNumber).style.left = 0;
			document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.left = 0;
		}

		if (t < 0) {
			document.getElementById('ge' + currentGraphicEntityNumber).style.top = 0;
			document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.top = 0;		
		}

		if ((t + h) > work_area_y) {
			document.getElementById('ge' + currentGraphicEntityNumber).style.top = work_area_y - h;
			document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.top = (work_area_y - h) * previewscale;
		}
		
		if ((l + w) > work_area_y) {
			document.getElementById('ge' + currentGraphicEntityNumber).style.left = work_area_x - w;
			document.getElementById('ge' + currentGraphicEntityNumber + 'p').style.left = (work_area_x - w) * previewscale;
		}
		
		
		setGraphicRadioSize(currentGraphicEntityNumber);
	}
}

function getScale(ai_size) {
	switch (Number(ai_size)) {
        case 1:
			return .3;
			break;
        case 2:
			return .6;
			break;
        case 4:
			return .8;
			break;
        case 128:
			return 1;
			break;
	}
}

function writeGraphicPosition(ai_Entity){
	var x = document.getElementById('ge' + ai_Entity).style.left;
	var y = document.getElementById('ge' + ai_Entity).style.top;
	var z = zGraphic[ai_Entity - 1];	
	x = x.replace('px','');
	y = y.replace('px','');
	document.getElementById('ge' + ai_Entity + '_position').value = x + ',' + y + ',' + z;
}

function writeTextPosition(ai_Entity){
	var x = document.getElementById('te' + ai_Entity).style.left;
	var y = document.getElementById('te' + ai_Entity).style.top;
	var z = zText[ai_Entity - 1];	
	x = x.replace('px','');
	y = y.replace('px','');
	document.getElementById('te' + ai_Entity + '_position').value = x + ',' + y + ',' + z;
}

function updateGraphic() {
	changeGraphicSize();
	writeGraphicPosition(currentGraphicEntityNumber);
	highlightEntityWithArrow(currentGraphicEntityNumber, false)	
}

function deleteGraphic() {
	
		document.getElementById('ge' + currentGraphicEntityNumber).src = '../images/empty.gif';
		document.getElementById('ge' + currentGraphicEntityNumber).style.display = 'none';		
		document.getElementById('ge' + currentGraphicEntityNumber + 'p').src = '../images/empty.gif';		
		document.getElementById('ge' + currentGraphicEntityNumber  + 'p').style.display = 'none';		
		
		document.getElementById('ge' + currentGraphicEntityNumber  + '_design').value = '';
		document.getElementById('ge' + currentGraphicEntityNumber  + '_upload').value = 'N';
		document.getElementById('ge' + currentGraphicEntityNumber  + '_availsize').value = 1;
		document.getElementById('ge' + currentGraphicEntityNumber  + '_size').value = '1'
		document.getElementById('highlighter').style.display = 'none';
		
		currentGraphicEntityNumber = -1;	
		changeToDialog('save');
		highlightEntity(0, true);
		backButton();
}

function toggleRotate() {
	document.getElementById('design').style.display = "none";
	document.getElementById('preview').style.display = "inline";
		
	if (previewmode == 'F') {
		document.getElementById('preview').style.backgroundImage = "url(../images/previewshirtback.gif)";
		previewmode = 'B';
	}
	else {
		document.getElementById('preview').style.backgroundImage = "url(../images/previewshirtfront.gif)";		
		previewmode = 'F';
	}	
}

function highlightEntityWithArrow(ai_EntityNumber, ab_Text) {
	var li_top;
	var li_Left;
	var ls_Entity;
	
	if (ab_Text) {
		ls_Entity = 'te' + ai_EntityNumber;
	} 
	else {
		ls_Entity = 'ge' + ai_EntityNumber;
	}
	
	li_top = document.getElementById(ls_Entity).style.top;
	li_Left = document.getElementById(ls_Entity).style.left;
	li_top = li_top.replace('px','');
	li_Left = li_Left.replace('px','');	
	document.getElementById('highlighter').style.display = 'inline';
	document.getElementById('highlighter').style.left = li_Left - 13;
	document.getElementById('highlighter').style.top = li_top;		
}

function getZIndex(as_Entity, ai_EntityNumber) {
	var li_swapZIndex;
	var li_CurrentForegroundIndex;
	var i;
	var li_entityNumber;
	
	if (as_Entity == 'te') {
		li_swapZIndex = zText[ai_EntityNumber - 1];			// zIndex of the one u clicked
		
		for (i=0; i<5; i++) {
			if (zText[i] == 64) {
				li_CurrentForegroundIndex = i; 
				break;
			} 
		}
				
		zText[li_CurrentForegroundIndex] = li_swapZIndex;
		
		li_entityNumber = li_CurrentForegroundIndex + 1;
		document.getElementById('te' + li_entityNumber).style.zIndex = li_swapZIndex;
		zText[ai_EntityNumber - 1] = 64;
		writeTextPosition(li_CurrentForegroundIndex + 1); // write the new zIndex		
		return zText[ai_EntityNumber - 1];
	}
	else {
		li_swapZIndex = zGraphic[ai_EntityNumber - 1];			// zIndex of the one u clicked
		
		for (i=0; i<5; i++) {
			if (zGraphic[i] == 54) {
				li_CurrentForegroundIndex = i; 
				break;
			} 
		}
		li_entityNumber = li_CurrentForegroundIndex + 1;
		document.getElementById('ge' + li_entityNumber).style.zIndex = li_swapZIndex;		
		zGraphic[li_CurrentForegroundIndex] = li_swapZIndex;		
		zGraphic[ai_EntityNumber - 1] = 54;	
		
		writeGraphicPosition(li_CurrentForegroundIndex + 1); // write the new zIndex
		return zGraphic[ai_EntityNumber - 1];
	}
}

function writetostatus(ls_text){
    window.status = ls_text;
    return true;
}

function textZup(ai_entityNumber) {	
	document.getElementById('te' + ai_entityNumber).style.zIndex = 64;	
	getZIndex('te', ai_entityNumber);
	changeTextEntity('te' + ai_entityNumber);	
	writeTextPosition(ai_entityNumber);
}

function graphicZup(ai_entityNumber) {	
	document.getElementById('ge' + ai_entityNumber).style.zIndex = 64;	
	getZIndex('ge', ai_entityNumber);
	changeGraphicEntity('ge' + ai_entityNumber);	
	writeGraphicPosition(ai_entityNumber);
}

function hideHelp(){
	document.getElementById('help').style.display = 'none';
}

function showHelpTopic(as_Topic) {
	helpContextDialog = as_Topic;
	selectHelpTopic();
}

function selectHelpTopic() {

	// hide all sections
	document.getElementById('imagehelp').style.display = 'none';
	document.getElementById('savehelp').style.display = 'none';
	document.getElementById('contentshelp').style.display = 'none';
	document.getElementById('texthelp').style.display = 'none';

    switch (helpContextDialog) {
		case 'imagehelp':
        case 'imagesearch':
		case 'imagedetails':
		case 'imageresults':		
			document.getElementById('imagehelp').style.display = 'inline';
			break;
		case 'texthelp':
        case 'textprops':
			document.getElementById('texthelp').style.display = 'inline';
			break;
		case 'savehelp':
        case 'save':
			document.getElementById('savehelp').style.display = 'inline';
			break;

		default:
			document.getElementById('contentshelp').style.display = 'inline';
			break
	}	
}

var ModalDialogWindow;
var ModalDialogInterval;
var ModalDialog = new Object;

function openUploadWindow() {
   var ls_Buttons = ''; 
   var ls_Title = 'The Title';
   ls_Buttons = '<a href=javascript:CloseForm("Yes");>Yes</a>  ';
   ls_Buttons += '<a href=javascript:CloseForm("No");>No</a>  ';
   ls_Buttons += '<a href=javascript:CloseForm("Cancel");>Cancel</a>  ';
 
   ModalDialog.value = '';
   ModalDialog.eventhandler = 'openUploadReturn()';
   

   var args='width=345,height=165,left=325,top=300,toolbar=0,';
       args+='location=0,status=0,menubar=0,scrollbars=0,resizable=0';  

   ModalDialogWindow=window.open("fileupload.aspx","upload",args); 
   ModalDialogInterval = window.setInterval('ModalDialogMaintainFocus()',1000);
}

function openUploadReturn(){	

    ModalDialog.eventhandler = '';
	if ((ModalDialog.value != 'ERROR')&& (ModalDialog.value != '')) {

		document.getElementById('uploadPath').value = ModalDialog.value;
	
		// set up the UI	
		document.getElementById('lblUpload').style.display = 'none';
		document.getElementById('btnAddUpload').style.display = 'inline';
		document.getElementById('btnUpload').style.display = 'none';
		document.getElementById('btnBackUpload').style.display = 'none';		
		document.getElementById('imgUploadThumbnail').src = document.getElementById('userUploadPath').value + document.getElementById('uploadPath').value;
		document.getElementById('uploadThumbnail').style.display = 'inline';
		document.getElementById('btnRemoveUpload').style.display = 'inline';		
		document.getElementById('lblUploadMessage').style.display = 'inline';		
	}
	
}

function ModalDialogMaintainFocus()
{
  try
  {
    if (ModalDialogWindow.closed)
     {
        window.clearInterval(ModalDialogInterval);
        eval(ModalDialog.eventhandler);       
        return;
     }
    ModalDialogWindow.focus(); 
  }
  catch (everything) {   }
}

function addUploadedImage() {

}

function removeUploadedImage() { 

	// hide all the UI crap	
	document.getElementById('lblUpload').style.display = 'inline';
	document.getElementById('btnAddUpload').style.display = 'none';
	document.getElementById('btnUpload').style.display = 'inline';
	document.getElementById('btnBackUpload').style.display = 'inline';			
	document.getElementById('uploadThumbnail').style.display = 'none';
	document.getElementById('btnRemoveUpload').style.display = 'none';
	document.getElementById('lblUploadMessage').style.display = 'none';	
	
	// search all graphic designs looking for the uploaded logo and remove it along with the uploaded indicator
	var ls_design;
	var ls_uploadedDesign = document.getElementById('uploadPath').value;
	
	for (i=1; i<6; i++) {
		ls_design = document.getElementById('ge' + i + '_design').value;
		if (ls_design == ls_uploadedDesign) {
			currentGraphicEntityNumber = i;
			deleteGraphic();			
		}
	}
	
	// delete the stored data in image and form
	document.getElementById('uploadPath').value = '';
	document.getElementById('imgUploadThumbnail').src = '../images/empty.gif';	
	//changeToDialog('save');
}

function selectUploadedImage() {	
	var li_sizes = 135;
	var ls_image = document.getElementById('uploadPath').value;
	var ls_design = document.getElementById('uploadPath').value;
	var ls_grapicsPath = document.getElementById('userUploadPath').value;
	
	document.getElementById('searchimagethumb').src = ls_grapicsPath + ls_image;	
	document.getElementById('lblDesignData').innerHTML = 'User';
	
	document.getElementById('lblSourceData').innerHTML = "User Uploaded Logo";	
	
	writeGraphicSummary();	
	graphicSizeLogic(0, li_sizes);
	changeToDialog('imagedetails');
	currentGraphicEntityNumber = -1;
	currentSearchImage = -1		//uploaded image
	setGraphicEditMode(false);
	addGraphic();
}

function setTipMessage(ai_MessageNumber) {

	switch (ai_MessageNumber) {
		case 0:
			document.getElementById('ddmessage').innerHTML = '';
		case 1:
			document.getElementById('ddmessage').innerHTML = '<b>Tip</b>&nbsp;Drag text or graphics into desired position.';
			break;
		case 2:
			document.getElementById('ddmessage').innerHTML = '<b>Tip</b>&nbsp;Click on a image category search for a keyword.';
			break;
		case 3:
			document.getElementById('ddmessage').innerHTML = '<b>Tip</b>&nbsp;Adjust text color/size by clicking on the dropdown lists.';
			break;
		case 4:
			document.getElementById('ddmessage').innerHTML = '<b>Tip</b>&nbsp;Press the Add button to add this image.';
			break;
		case 5:
			document.getElementById('ddmessage').innerHTML = '<b>Tip</b>&nbsp;All designs will fit the front or back.';
			break;			
	}
}


var mb_MenuEnabled = false;
var ms_LastMenu = '';
var mb_deleteMenuEnabled = false;

function ddmHandler(ai_MenuCode) {

	hideMenu(ms_LastMenu);
	if (ms_LastMenu.length > 0) {
		document.getElementById(ms_LastMenu).style.display = "none";
	}
	
	if (mb_MenuEnabled) {
		switch (ai_MenuCode) {
		case 0:
			document.getElementById('ddmFile').style.display = 'inline';
			ms_LastMenu = 'ddmFile';
			break;
		case 1:
			document.getElementById('ddmEdit').style.display = 'inline';
			ms_LastMenu = 'ddmEdit';
			break;
		case 2:
			document.getElementById('ddmDesign').style.display = 'inline';
			ms_LastMenu = 'ddmDesign';
			break;
		case 3:
			document.getElementById('ddmPreview').style.display = 'inline';
			ms_LastMenu = 'ddmPreview';
			break;
		case 4:
			document.getElementById('ddmHelp').style.display = 'inline';
			ms_LastMenu = 'ddmHelp';
			break;			
		case 5:
			document.getElementById('ddmIcon').style.display = 'inline';
			ms_LastMenu = 'ddmIcon';
			break;			
			
		case 10:		
			if (confirm("Are you sure you would like to close this design?  Any unsaved changes will be lost.")) {
				initstudio();
			}					
			break;
		case 12:
			if (confirm("Are you sure you would like to close this design?  Any unsaved changes will be lost.")) {
				window.location = '../main/designcenter.aspx';
			}								
			break;
		case 13:
			copyEntity();
			break;
		case 14:
			pasteEntity();
			break;
		case 15:
			deleteEntity();
			break;
		case 16:
			clicked(1);
			break;

		case 17:
			clicked(2);
			break;
		
		case 18:
			clicked(20);
			break;

		case 11:
			clicked(3);
			break;
			
		case 19:			
			changeToDialog('save');
			togglePreview();
			break;
		case 20:
			showDesign();
			break;		
		case 22:
			changeToDialog('save');			
			//selectHelpTopic(0);
			helpContextDialog = '';
			selectHelpTopic();
			document.getElementById('help').style.display = 'inline';
			setTipMessage(0);			
			
			break;
			
		case 23:
			alert('Corporate Casuals online t-shirt studio version 1.10.  Copyright (C) 2006 All Rights Reserved.');
			break;
		case 24:
			toggleRotate();
		}
	}
	mb_DDMInit = false;

}

function backButton() {
	var i;
	var ls_Value = new String();
	var lb_foundEntity = false;
	
	// look for a text entity
	for (i=1; i<6; i++) {
		ls_Value = document.getElementById('te' + i + '_value').value;
		
		if (ls_Value.length > 0) {
			changeTextEntity('te' + i)	
			lb_foundEntity = true;			
			highlightEntity(i, true);
		}
	}	
	
	// if no text entities then look for a graphicImages
	if (!lb_foundEntity) {
		for (i=1; i<6; i++) {
			ls_Value = document.getElementById('ge' + i + '_design').value;
		
			if (ls_Value.length > 0) {			
				changeGraphicEntity('ge' + i);
				lb_foundEntity = true;			
				highlightEntity(i, false);
			}
		}
	}
	
	// if no graphic then show the intro screen
	if (!lb_foundEntity) {
		changeToDialog('intro');
		mb_deleteMenuEnabled = false;
	}	
}

var mb_CBCurrentEntity;
var ms_CBValue;
var ms_CBIsUploaded;
var ms_CBFontSize;
var ms_CBFontType;
var ms_CBFontColor;
var ms_CBPosition;

function copyEntity() {
	//burp(currentTextEntity);
	if (mb_CBCurrentEntity == 1) {
		ms_CBValue = document.getElementById('te' + currentEntityNumber + '_value').value;
		ms_CBIsUploaded = '';
		ms_CBFontSize = document.getElementById('te' + currentEntityNumber + '_size').value;
		ms_CBFontType = document.getElementById('te' + currentEntityNumber + '_font').value;
		ms_CBFontColor = document.getElementById('te' + currentEntityNumber + '_color').value;
		ms_CBPosition = document.getElementById('te' + currentEntityNumber + '_position').value;	
	}
	else if (mb_CBCurrentEntity == 2) {
		ms_CBValue = document.getElementById(currentGraphicEntity + '_design').value;
		ms_CBIsUploaded = document.getElementById(currentGraphicEntity + '_upload').value;
		ms_CBFontSize = '';
		ms_CBFontType = '';
		ms_CBFontColor = '';
		ms_CBPosition = document.getElementById(currentGraphicEntity + '_position').value;		
	}
	CBDebug();
}

function pasteEntity() {

}

function deleteEntity() {
	if (mb_deleteMenuEnabled) {
		if (mb_CBCurrentEntity == 1) {
			clicked(14);
		}
		else if (mb_CBCurrentEntity == 2) {
			deleteGraphic();
		}		
	}
}

function CBDebug() {
	burp('CBCurrentEntity: ' + mb_CBCurrentEntity);
	burp('value: ' + ms_CBValue);
	burp('misc: ' + ms_CBIsUploaded + ',' + ms_CBFontSize + ',' + ms_CBFontType + ',' + ms_CBFontColor + ',' + ms_CBPosition); 
}

function toggleJustify(){
	var ls_CurrentJustify = document.getElementById('te' + currentEntityNumber + '_just').value;
	
	if (ls_CurrentJustify == 'C') {
		document.getElementById('te' + currentEntityNumber + '_just').value = 'L';
		document.getElementById('fontjustify').style.backgroundImage = "url(../images/check_off.gif)";
	}
	else {
		document.getElementById('te' + currentEntityNumber + '_just').value = 'C';
		document.getElementById('fontjustify').style.backgroundImage = "url(../images/check_on.gif)";
	}
	

}
//******************************** DRAG N DROP CODE **********************
var dobj = {
			z: 0, 
			x: 0, 
			y: 0, 
			offsetx : null, 
			offsety : null, 
			tobj : null, 
			da : 0,
			snapx: false,
			snapy: false,
			curobj: null,
		  
			initialize:function() {
				document.onmousedown = this.drag;
				document.onmouseup = this.drop;					
			},
			
			drag:function(e) {	
					
				var evtobj = window.event ? window.event : e;
				this.tobj = window.event ? event.srcElement : e.target;								
				
				if (this.tobj.className=="drag") {
					this.da = 1;
					
					this.curobj = this.tobj;
												
					if (this.tobj.id.substring(0,2) == 'te') {
						changeTextEntity(this.tobj.id);						
						mb_MovingText = true;
					}
					else {												
						changeGraphicEntity(this.tobj.id);
						mb_MovingText = false;
					}
															
					if (isNaN(parseInt(this.tobj.style.left))) {
						this.tobj.style.left=0;
					}
					
					if (isNaN(parseInt(this.tobj.style.top))){
						this.tobj.style.top = 0;
					}
					
					this.offsetx=parseInt(this.tobj.style.left);
					this.offsety=parseInt(this.tobj.style.top);
					this.x = evtobj.clientX;
					this.y = evtobj.clientY;							
					showGuides();
								
					if (evtobj.preventDefault)
						evtobj.preventDefault();
					
					document.onmousemove = dobj.moveit;										   		        							
				}
				else {								
					if (this.tobj.className == 'designarea') {
						document.getElementById('highlighter').style.display = 'none';
						completeAddText();
						// replace the zIndex on the last selected graphic
						if (mi_OldZindex != -1) {
							document.getElementById(ms_LastSelectedElement).style.zIndex = mi_OldZindex;
							mi_OldZindex = -1;
						}
					}					
				}			
			},

			moveit:function(e){
				var evtobj=window.event? window.event : e;
				var px;
				var py;
				var previewItem;
				
				if (this.da == 1){
					px = this.offsetx + evtobj.clientX - this.x;
					py = this.offsety + evtobj.clientY - this.y;			
					
					if (px < 0){px = 0};
					if (py < 0){py = 0};
					
					// handle the center guide
					if ((px + (this.tobj.width / 2) > 160) && (px + (this.tobj.width / 2) < 170)) {
						document.getElementById('halign').style.display = 'inline';
						this.snapx = true;
					}
					else {
						document.getElementById('halign').style.display = 'none';
						this.snapx = false;
					}
									
					if (px > (work_area_x - this.tobj.width)){px = (work_area_x - this.tobj.width)};
					if (py > (work_area_y - this.tobj.height)){py = (work_area_y - this.tobj.height)};
					
					// move the entity
					this.tobj.style.left = px;
					this.tobj.style.top = py;
					
					// save the entity position
					if ((mi_OldZindex != -1) && (!mb_MovingText)) {
						document.getElementById(this.tobj.id + '_position').value = px + ',' + py + ',' + mi_OldZindex//this.tobj.style.zIndex;							
					}
					else {
						document.getElementById(this.tobj.id + '_position').value = px + ',' + py + ',' + this.tobj.style.zIndex;		
					}					
					
					return false;				
				}
			},
			
			drop:function(e){
				if (this.da == 1) {
					var evtobj=window.event? window.event : e;		        
					this.da=2;
					document.getElementById('halign').style.display = 'none';
					document.getElementById('valign').style.display = 'none';
					
					px = this.offsetx + evtobj.clientX - this.x;
					py = this.offsety + evtobj.clientY - this.y;	  
					
					// check work area limits
					if (px < 0){px = 0};
					if (py < 0){py = 0};      
					if (px > (work_area_x - this.tobj.width)){px = (work_area_x - this.tobj.width)};
					if (py > (work_area_y - this.tobj.height)){py = (work_area_y - this.tobj.height)};		        
					
					// snap to grid if needed
					if (this.snapx) {px = 165 - (this.tobj.width/2);};
					//if (this.snapy) {py = 62 - (this.tobj.height/2)};
					
					// move the object and store its location
					this.tobj.style.left = px;
					this.tobj.style.top = py;
					
					if ((mi_OldZindex != -1) && (!mb_MovingText)) {
						document.getElementById(this.tobj.id + '_position').value = px + ',' + py + ',' + mi_OldZindex//this.tobj.style.zIndex;						
					}
					else {
						document.getElementById(this.tobj.id + '_position').value = px + ',' + py + ',' + this.tobj.style.zIndex;	
					}
										
					hideGuides();
					
					// move the preview				
					document.getElementById(this.tobj.id + 'p').style.top = (py * previewscale) + previewYOffset; 
					document.getElementById(this.tobj.id + 'p').style.left = (px * previewscale) + previewXOffset; 				
					document.getElementById('highlighter').style.display = 'inline';
					document.getElementById('highlighter').style.left = px - 13;
					document.getElementById('highlighter').style.top = py;
				}		
			}
		};

//******************************** DRAG N DROP CODE **********************

//******************************** DEBUGGER **********************
var debugText = new String('<u>Debug Window</u><br>');

function burp (as_Text) {
    debugText = debugText + '--> ' + as_Text + '<br>';
    document.getElementById('debug').innerHTML = debugText;
}

function clearDebug() {
    debugText = new String('<u>Debug Window</u><br>');
	burp('Clear');
}
//******************************** DEBUGGER **********************

// *********************************** BEGIN AJAX CODE *****************************
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

// this function sends the ajax request
function sndReq(url) {
    httpRequest.open('get', url);
    httpRequest.onreadystatechange = handleResponse;
    httpRequest.send(null);
}

// event handler for the ajax response
function handleResponse() {
    if(httpRequest.readyState == 4){		
        var response = httpRequest.responseText;
		imageSearchResults = response.replace(/^\s+|\s+$/, '');
		document.getElementById('txtImageSearch').value = '';
    }
}

function buildSearchURL(as_Keyword, ai_Sizes, ai_Category) {
	mi_AjaxRequestNumber++;
	return 'graphicsearch.aspx?K=' + as_Keyword + '&S=' + ai_Sizes + '&C=' + ai_Category + '&RID=' + mi_AjaxRequestNumber;
}

function searchForGraphics(as_Keyword, ai_Sizes, ai_Category) { 
	var url = buildSearchURL(as_Keyword, ai_Sizes, ai_Category);
	sndReq(url);	
}

function doAjaxLogin(as_EmailAddress, as_Password) { 
	mi_AjaxRequestNumber++;
	var url = 'ajaxlogin.aspx?UN=' + as_EmailAddress + '&PW=' + as_Password + '&RID=' + mi_AjaxRequestNumber;
	httpRequest.open('get', url);
    httpRequest.onreadystatechange = handleAjaxLoginResponse;
    httpRequest.send(null);
}
function handleAjaxLoginResponse() {
	if(httpRequest.readyState == 4){
        var response = httpRequest.responseText;
		if (response == '+') {
			ms_LoginSuccessful = "Y";
		}
		else {
			ms_LoginSuccessful = "N";
		}
    }
	else {
		ms_LoginSuccessful = "E";
	}
	
}

// *********************************** END AJAX CODE *****************************



