// JScript File

var currentOpen = '';
var searchParamCount = 0;
var partcode = '';
var manufacturer = '';
var scope = '';
var incident_type = '';
var pagesize = 0;
var pagestart = 0;
var selectedSmallTextBar = '';
var selectedTab = '';
var selectedOpenDiv = '';
var search_type = '';
var selectedForumMenu = '';
var openMenu = '';
var openParent = 0;
var openForum = 0;
var keepMenusOpen = false;
var search_public = false;

var selectedLeftTab = '';
var selectedLeftDiv = '';

var searchingCompanies = false;

// graph display variables
var graphType = '';
var graphQuantity = 0;
var graphPeriod = '';
var selectedGraphType = '';
var selectedGraphQuantity = '';
var selectedGraphPeriod = '';


function checkPartCode()
{
	var a = $F('pc');
	var l = a.length;
	
	for(x=0;x<l;x++)
	{
		var char = a.charAt(x);
		var reg = /(\w|\-|\.|\,|\/|\d)/;
		if (!reg.test(char))
		{
			alert("Please remove '" + char + "' from your search");
			return false;
		}
	}

	if (a.length == 0)
	{
		alert("You need to enter a partcode");
		return false;
	}
	else if (a.length < 4)
	{
		alert("You need to search for a longer partcode");
		return false;
	}
	else
	{
		//document.partsearch_form.submit();
		return true;
	}
}

function doMainPartSearch()
{
	if (checkPartCode())
	{
		document.partsearch_form.submit();
	}
}

function trySearch()
{
	search_public = true;	
}


function toggleLoginForm()
{
	Element.toggle('dashboard');
	Element.toggle('loginform');
}

function showPricingData(partid, partcode, o2id, displayTesting)
{
	var a = 'summary_viewer';
    a.innerHTML = '';   
    var url = 'getSummary.php';
	
	if ($(a).style.display != '')
	{
		placeSummaryViewer();
		/*getPricing(a, partid, partcode, o2id, 1, false);
		var b = Builder.node('div', {className:'photo_closebox'}, 'Close X');
		$(a).appendChild(b);
		
		var loading = getLoadingScreen();
		a.appendChild(loading);*/
	 
		url = url + '?p=0&d=1' + '&t=' + (displayTesting ? '1' : '0');
		new Ajax.Updater('summary_viewer', url, 
		{
			evalScripts:true,
			onComplete:function(e)
			{  
				div = 'pricing0';
				getPricing(div, partid, partcode, o2id, 0, false);
				if (displayTesting)
				{
					showTesting('0', partcode);
				}
			}
		}
		);
	}
}

function hideSummary()
{
	$('summary_viewer').hide();
	Effect.Fade('dashboard', {duration:0.5});
}

function placeSummaryViewer()
{
	var a = $('summary_viewer');
	var top = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + 20;
	a.style.top = top + 'px';
	a.innerHTML = '';
	Effect.Appear('summary_viewer', {duration:1});
	Effect.Appear('dashboard', {duration:0.5, to:0.6});
}

function showSummary(partdetailid, partid, partcode, o2id, displayPricing, displayTesting)
{

    var a = $('summary_viewer');
    a.innerHTML = '';   
    var url = 'getSummary.php';
    
	if (a.style.display != '')
	{
		placeSummaryViewer();
		
		var loading = getLoadingScreen();
		a.appendChild(loading);
	 
		url = url + '?p=' + partdetailid + '&d=' + ( displayPricing ? '1' : '0') + '&t=' + (displayTesting ? '1' : '0');
		new Ajax.Updater('summary_viewer', url, 
		{
			evalScripts:true,
			onComplete:function(e)
			{  
				if (displayPricing)
				{
					div = 'pricing' + partdetailid;
					getPricing(div, partid, partcode, o2id, 0, false);
				}
				if (displayTesting)
				{
					//div = 'testing' + partdetailid;
					showTesting(partdetailid, partcode);
				}
			}
		}
		);
	}	
}

function showPublicSummary(partdetailid, partid, partcode, o2id, displayPricing, displayTesting)
{

    var a = $('summary_viewer');
    a.innerHTML = '';   
    var url = 'getPublicSummary.php';
    
	if (a.style.display != '')
	{
		placeSummaryViewer();
		//Effect.Appear(a, {duration:1});
		
		var loading = getLoadingScreen();
		a.appendChild(loading);
	 
		url = url + '?p=' + partdetailid + '&d=' + ( displayPricing ? '1' : '0') + '&t=' + (displayTesting ? '1' : '0');
		new Ajax.Updater('summary_viewer', url, 
		{
			evalScripts:true,
			onComplete:function(e)
			{  
				if (displayPricing)
				{
					div = 'pricing' + partdetailid;
					getPricing(div, partid, partcode, o2id, 0, true);
				}
			}
		}
		);
	}	
}

function togglePhotoVisibility(link, id, visible)
{
    var visible = (visible == 1 ? 0 : 1);
    var newClick = 'togglePhotoVisibility(this,' + id + ',' + visible + ')';
    var newSrc = 'images/' + ( visible == 0 ? 'switch_off.png' : 'switch_on.png');
    var url = 'setPhotoVisible.php?p=' + id + '&v=' + visible;
    
    link.setAttribute('onclick', newClick);
    $('img' + id).src = newSrc;
    new Ajax.Request(url, {});
}

function getPricing(div, partid, partcode, o2id, floating, public)
{
    var loading = getLoadingScreen();
    $(div).appendChild(loading);
    var url = 'getPricingData.aspx?i=' + partid + '&o=' + o2id + '&c=' + partcode + '&f=' + floating + '&public=' + (public ? '1' : '0');
    new Ajax.Updater(div, url, {});
}

function showTesting(pid, partcode)
{
    new Ajax.Updater('testing' + pid, 'getTestingData.php?p=' + partcode, {});
}



function formatCurrency(num) 
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function buildSearchString()
{
    var empty = true;
    var vars = '';

    var partcodes = $$('input.classPartcode');
    if (partcodes)
    {
        vars = vars + (vars != '' ? '&' : '') + 'partcode=';
                    
        for(x=0;x<partcodes.length;x++)
        {
            vars = vars + (x > 0 ? ',' : '') + partcodes[x].value;
        }
        
        empty = false;
    }
    
    // incident type
    
    var types = $$('select.classIncidentType');
    
    if (types)
    {
        vars = vars + (vars != '' ? '&' : '') + 'incident_type=';
        
        for(x=0;x<types.length;x++)
        {
            vars = vars + (x > 0 ? ',' : '') + types[x].value;
        }
        
        empty = false;
    }
    
    // manufacturer
    
    var mfgs = $$('input.classManufacturer');
    
    if (mfgs)
    {
        vars = vars + (vars != '' ? '&' : '') + 'manufacturer=';
        
        for(x=0;x<mfgs.length;x++)
        {
            vars = vars + (x > 0 ? ',' : '') + mfgs[x].value;
        }
        
        empty = false;
    }
    
    if (empty)
    {
        alert('You must enter a search parameter');
        return false;
    }

    vars = vars + '&scope=' + $F('scope');

    return vars;
}

function setStart(num)
{
    pagestart = num;
    if (search_public)
    {
     	doTastePartSearch();
    }
    else
    {
    	makeSearch();
    }
}

function checkSavedSearches()
{
	if ($('saved_searches').innerHTML != '')
	{
		$('saved').show();
	}
	else
	{
		$('saved').hide();
	}
}

function getSavedSearches()
{
    new Ajax.Updater('saved_searches', 'getSavedSearches.php', { onComplete:checkSavedSearches });
}

/*function getFavoriteParts()
{
    new Ajax.Updater('favorite_parts', 'getFavoriteParts.php', {});
}*/

function saveSearch()
{
    var vars = buildSearchString();
    
    new Ajax.Request(
        'save_search.php?' + vars,
        {
            onComplete:function(e)
            {
                getSavedSearches();
            }
        }
    );
}

function deleteSavedSearch(id)
{
    new Ajax.Request(
        'delete_saved_search.php?id=' + id,
        {
            onComplete:function(e)
            {
                getSavedSearches();
            }
        }
    );
}

function getLoadingScreen()
{
    return Builder.node('div', { className:'loading' }, [Builder.node('img', { src:'/images/loading.gif' })]);
}

function makeSearch()
{
    // determine which fields exist
        
    var url = 'get_part_search_results.php';
          
    // fill with loading dialog

    $('part_search_results').innerHTML = '';

    var loading = getLoadingScreen();
    $('part_search_results').appendChild(loading);
    
    var vars = buildSearchString();
    //alert(vars);
    
    if (vars != '')
    {
    	//alert(search_type);
        url = url + '?' + vars + '&num=' + $F('pagesize') + '&ph=' + ($F('phavail') == 'on' ? '1' : '0') + '&pr=' + ($F('pcavail') == 'on' ? '1' : '0') + '&start=' + pagestart + (search_type != 'prices' ? '&parts=1' : '&prices=1');
        //alert(url);
        new Ajax.Updater('part_search_results',url,{});
    }
}

function initSearch()
{
    var canned = false;
    
    //alert(' Partcode = ' + partcode + '\n Manufacturer = ' + manufacturer + '\n Type = ' + incident_type);
    
    if (partcode != '')
    {
        partcodes = partcode.split(',');
        for(x=0;x<partcodes.length;x++)
        {
            addNewSearchParam('partcode', partcodes[x]);
        }
        canned = true;
    }
    
    if (manufacturer != '')
    {
        mfgs = manufacturer.split(',');
        for(x=0;x<mfgs.length;x++)
        {
            addNewSearchParam('manufacturer', mfgs[x]);
        }
        canned = true;    
    }
        
    if (incident_type != '')
    {
        types = incident_type.split(',');
        for(x=0;x<types.length;x++)
        {
            addNewSearchParam('type', types[x]);
        }
        canned = true;    
    }
    
    if (scope != '')
    {
        $('scope').selectedIndex = (scope == 'all' ? 1 : 0);
    }
        
    if (!canned)
    {
        addNewSearchParam();
    }
    else
    {
        makeSearch();
    }
    
}

function watchMfgLookup(e)
{   
   var e = (window.event) ? window.event : e ;
   var name = $F('m');
	if (name.length >= 2)
	{
		lookupParts();
		e.cancel = true;
		return false;
	}
	else
	{
		//Element.hide('companylookup_results');
	}
 }


function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function setLookup(t)
{
	if (t.checked)
	{
		setCookie('usequicklookup',1,365);
	}
	else
	{
		setCookie('usequicklookup',0,365);
	}
}

function watchPartcodeLookup(e)
{   
   var e = (window.event) ? window.event : e ;
   if ($('usequicklookup').checked == true)
   {
		var name = $F('pc');
		if (name.length >= 4)
		{
			if ($('quicklookup').style.display == 'none')
			{
				Effect.Appear('quicklookup', {duration:0.5});
			}
	
			Element.show('lookup_working');
			var url = 'getPartLookup.php?name=' + name;
			//Element.show('companylookup_results');
			new Ajax.Updater('quicklookup_content', url, { asynchronous:false, evalScripts:true, onComplete:Element.hide('lookup_working') });
			e.cancel = true;
			return false;
		}
		else
		{
			$('quicklookup_content').update('');
			Element.hide('quicklookup');
			//Element.hide('companylookup_results');
		}   
   }
}

function watchFrontPagePartSearch(e)
{
   var e = (window.event) ? window.event : e ;
   var name = $F('mainsearchbox');
   if (e.keyCode == 13)
   {
   		validateMainSearch();
   		return false;
   }
   if (name.length >= 4)
   {
   		$('spinner').show();
		var url = 'getPartLookup.php?name=' + name;
		//Element.show('companylookup_results');
		new Ajax.Updater('frontpage_lookup', url, { asynchronous:false, evalScripts:true });
		e.cancel = true;
		return false;
   }
}

function validateMainSearch()
{
	if ($F('mainsearchbox') != '')
	{
		$('mainsearch').submit();
	}
		
}
 
function watchCompanyLookup(e) 
{   
	var e = (window.event) ? window.event : e ;
	var name = $F('companylookup');

   	if (name.length >= 2)
	{		
		$('forum_container').hide();
		$('company_closebutton').show();
		$('content_right').style.height = '500px';
	
		if (searchingCompanies == false) {
			var results = Builder.node('div', {id:'companylookup_results'});
			$('content_right').appendChild(results);	
		}
		
		var name = $F('companylookup');
		var url = 'getCompanyLookup.php?name=' + name;
		
		new Ajax.Updater('companylookup_results', url, { evalScripts:true });
		
		searchingCompanies = true;
		e.cancel = true;
		return false;
	}
	else
	{
		killCompanyLookup();
	}
}

function killCompanyLookup()
{
	if (searchingCompanies)
	{
		$('company_closebutton').hide();
		$('content_right').removeChild($('companylookup_results'));
		Element.show('forum_container');
		searchingCompanies = false;
	}	
}

function selectbar(a,b)
{
	if (selectedSmallTextBar)
	{
		Element.removeClassName(selectedSmallTextBar, 'selected_small');
	}
	Element.addClassName(a, 'selected_small');
	selectedSmallTextBar = a;
	
	if (b != '')
	{
		if (selectedOpenDiv)
		{
			Element.hide(selectedOpenDiv);
		}
		Element.show(b);
		selectedOpenDiv = b;
	}
}

function selectTab(tab, div)
{
	if (selectedTab != '')
	{
		Element.removeClassName(selectedTab, 'selected');
	}
	Element.addClassName(tab, 'selected');
	selectedTab = tab;
	
	if (div != '')
	{
		if (selectedOpenDiv)
		{
			Element.hide(selectedOpenDiv);
		}
		Element.show(div);
		selectedOpenDiv = div;
	}
}

function selectAboutTab(a,b)
{
	if (selectedSmallTextBar)
	{
		Element.removeClassName(selectedSmallTextBar, 'selected');
	}
	Element.addClassName(a, 'selected');
	selectedSmallTextBar = a;
	
	if (b != '')
	{
		if (selectedOpenDiv)
		{
			Element.hide(selectedOpenDiv);
		}
		Element.show(b);
		selectedOpenDiv = b;
	}
	
	if (selectedOpenDiv != '')
	{
		if (selectedOpenDiv == 'transaction')
		{
			for(x=1;x<27;x++)
			{
				var name = 'fball' + x;
				Element.appear(name);
			}
		}
		else
		{
			for(x=1;x<27;x++)
			{
				var name = 'fball' + x;
				Element.hide(name);
			}
		}
	}
}



function showDisclaimer(name)
{
	var url = '';
	switch(name)
	{
		case 'price':
			url = 'disclaimer_price.html';
			break;
		case 'photos':
			url = 'disclaimer_photos.html';
			break;
		case 'liability':
			url = 'disclaimer_liability.html';
			break;

	}
	window.open(url,'','height=200,width=400');
}

function hideSummaryDivs(pid)
{
    $('pricing' + pid).hide();
    $('testing' + pid).hide();
    $('photos' + pid).hide();
    $('summary' + pid).hide();
}

function deselectSummaryTabs(pid)
{	
	$('btnsummary' + pid).removeClassName('selected');
	$('btnphotos' + pid).removeClassName('selected');
	$('btnpricing' + pid).removeClassName('selected');
	$('btntesting' + pid).removeClassName('selected');
}

function selectSummaryTabs(pid)
{
	var tabs = $$('div.summary_tab');
                    
	for(x=0;x<tabs.length;x++)
	{
		var name = tabs[x].innerHTML.toLowerCase();
		selectSummaryTab(pid, name);
	}
}

function selectSummaryTab(pid, name)
{
	var btn = 'btn' + name + pid;
	var div = name + pid;
	if ($(btn).hasClassName('selected'))
	{
		$(div).hide();
		$(btn).removeClassName('selected');
	}
	else
	{
		$(div).show();
		$(btn).addClassName('selected');
	}
}

function showLargePhoto(id)
{
    var img = '<img id=bigimage style=display:none; src=photo.php?p=' + id + '&l=1>';
	$('photo_viewer_content').update(img);
	if ($('photo_viewer').style.display == "none")
	{
		Effect.Appear('photo_viewer');
	}
	Effect.Appear('bigimage');
}

function showPartEntryInfo(option)
{	
	var opts = $('newpartdetail_options');
	var note = $('fraudulent_notification');
	
	switch(option)
	{
		case '-1':
			opts.hide();
			note.hide();
		break;
		case '0':
			opts.show();
			note.hide();
			document.vbform.f.value = 34;
		break;
		case '1':
			opts.hide();
			note.hide();
			document.vbform.f.value = 44;
			document.vbform.is_fraudulent.checked = false;
		break;
		case '2':
			opts.hide();
			note.show();
			document.vbform.f.value = 5;
			document.vbform.is_fraudulent.checked = true;

		break;
	}
}

function checkPost()
{
	var submit = true;
	f = document.vbform;
	if (f.task)
	{
		if (f.task.value == -1)
		{
			$('task_error').show();
			submit = false;
		}
	}
	
	if (f.subject.value == '')
	{
		alert('You must enter a subject');
		f.subject.focus();
		submit = false;
	}
	
	if (submit)
	{
		document.vbform.submit();
	}
}

function purchaseVote(vote, userid, partdetailid)
{
	$('voteYes').disabled = true;
	$('voteNo').disabled = true;
	new Ajax.Request('voteOnPart.php?v=' + vote + '&id=' + userid + '&pd=' + partdetailid,
		{
			onComplete:function(t)
			{
				$('votingbox').update('Your vote has been recorded');
			}
		}
	);
}

function viewPressFile(name)
{
	new Ajax.Updater('press_content','press_files/' + name, { method:'get' });
}

function viewOrafecStats(num)
{
	Effect.Appear('stat_viewer', {duration:1});
	Effect.Appear('dashboard', {duration:0.5, to:0.6});
	var url = 'admin_search_charts.php?days=' + num;
	new Ajax.Updater('stat_viewer_content',url, {});
}

function hideOrafecStats()
{
	Effect.Fade('stat_viewer');
	Effect.Fade('dashboard');
}
function setGraphType(type)
{
	graphType = type;
	if (graphQuantity != 0 && graphPeriod != '')
	{
		doGraph();
	}
}

function setGraphQuantity(number)
{
	graphQuantity = number;
	if (graphType != '' && graphPeriod != '')
	{
		doGraph();
	}
}

function setGraphPeriod(period)
{
	graphPeriod = period;
	switch(graphPeriod)
	{
		case 'days':
			$('dayUnits').show();
			$('monthUnits').hide();
			graphQuantity = 5;
		break;
		case 'months':
			$('dayUnits').hide();
			$('monthUnits').show();
			graphQuantity = 1;
		break;
	}
	doGraph();
}

function doGraph()
{
	if (selectedGraphPeriod != '')
	{
		$(selectedGraphPeriod).removeClassName('selected');
	}
	var a = 'time_' + graphPeriod;
	$(a).addClassName('selected');
	selectedGraphPeriod = a;

	if (selectedGraphQuantity != '')
	{
		$(selectedGraphQuantity).removeClassName('selected');
	}
	var a = 'unit' + graphQuantity;
	$(a).addClassName('selected');
	selectedGraphQuantity = a;

	if (selectedGraphType != '')
	{
		$(selectedGraphType).removeClassName('selected');
	}	
	var a = 'type_' + graphType;
	$(a).addClassName('selected');
	selectedGraphType = a;


	// get image and update
	var url = 'searches_chart.aspx';
	
	switch(graphPeriod)
	{
		case 'days':
			url = url + '?d=' + graphQuantity;
		break;
		case 'months':
			url = url + '?d=' + (graphQuantity * 30);
		break;
	}
		
	switch(graphType)
	{
		case 'search':
			url = url + '&t=searches';
		break;
		case 'posts':
			url = url + '&t=posts';
		break;
	}
	
	var b = Builder.node('img',{src:url});
	$('graph').update(b);
}

/*function fillPricingCells()
{
    var cells = $$('.pricingCell');
    for(x=0;x<cells.length;x++)
    {
        var parts = cells[x].id.split('Cell');
        var cell = $(cells[x].id);
        var spin = Builder.node('img', { src:'/images/spinner.gif' });
        cell.appendChild(spin);
        var url = 'getPricingCount.aspx?c=' + parts[1];
        //alert(url);
        new Ajax.Updater(cells[x].id, url, {});
    }
}*/

function addNewSearchParam(type, value)
{   
    var type = ( type ? type : 'partcode');    
    var value = ( value ? value : '');
    var num = searchParamCount + 1;
    var paramID = 'param' + num;
    var selectID = 'paramkind' + num;
    var varID = 'var' + num;
    
    var select = Builder.node('select', { name: selectID, id: selectID, onChange:'getParamInput(\'' + num + '\',\'' + varID + '\',this.options[this.options.selectedIndex].value);' }, [
                 Builder.node('option', { value:'partcode' }, 'Partcode is:'),
                 Builder.node('option', { value:'type' }, 'Part Type Is:'),
                 Builder.node('option', { value:'manufacturer' }, 'Manufacturer is:')
                 ]);
    
    var controls = Builder.node('span', { className: 'search_param_controls', id:'param_controls' + num }, [
                    Builder.node('img', { src:'images/circular-plus.png', title:'Add another search parameter', onClick:'addNewSearchParam();' }),
                    Builder.node('img', { src:'images/circular-minus.png', title:'Remove this search parameter', onClick:'removeSearchParam(' + paramID + ');' }),
                    ]);
                    
    var param_var = Builder.node('span', { id:varID, className:'search_param_var' });
                    
    var param = Builder.node('div', { id:paramID , style:'display:none;', className: 'search_param'}, [controls, select, param_var]);
    
    $('search_params').appendChild(param);
    
    $(selectID).options.selectedIndex = 0;
    switch(type)
    {
        case 'partcode':
            $(selectID).options.selectedIndex = 0;
            break;
        case 'manufacturer':
            $(selectID).options.selectedIndex = 2;
            break;
        case 'type':
            $(selectID).options.selectedIndex = 1;
            break;    
    }
    
    getParamInput(num, varID, (type != '' ? type : $F(selectID)), value);
    searchParamCount++;
//    if (searchParamCount > 1)
//    {
//        new Effect.toggle(paramID, 'appear');
//    }
//    else
//    {
        Element.show(paramID);
//    }
}

function removeSearchParam(id)
{
    Element.remove(id);
    searchParamCount--;
}

function getParamInput(num, div, type, value)
{
    var value = (value ? value : '');
    var input = '';
    var selectid = '';
    switch(type)
    {
        case 'partcode':
            input = Builder.node('input', {type:'text', id:'partcode', value:value, className:'classPartcode', name:'partcode', size:15});
            break;      
        case 'type':
            selectid = 'incident_type' + num;
            input = Builder.node('select', {id:selectid, className:'classIncidentType', name:selectid}, [
                Builder.node('option', {value:"all" }, 'All Parts'),
                Builder.node('option', {value:"O" }, 'Original'),
                Builder.node('option', {value:"F" }, 'Fraudulent'),
                Builder.node('option', {value:"C" }, 'Counterfeit')
            ] );
            break;
        case 'manufacturer':
            input = Builder.node('input', {type:'text', value:value, className:'classManufacturer', id:'manufacturer', name:'manufacturer', size:15});
    }
    
    $(div).innerHTML = '';
    $(div).appendChild(input);
    
    if (selectid != '')
    {
        switch (value)
        {
            case 'all':
                $(selectid).selectedIndex = 0;
                break;
            case 'O':
                $(selectid).selectedIndex = 1;
                break;
            case 'F':
                $(selectid).selectedIndex = 2;
                break;
            case 'C':
                $(selectid).selectedIndex = 3;
                break;
        }
    }
}

