Project

General

Profile

1
var imgUrl = "static-content/images/icons/search_minus.png";
2
var index = 0;
3

    
4
//var cursordId = "input[" + 0 +"]";
5
var cursordId = "";
6

    
7
function hide( id ){
8
    var mySlide = new Fx.Slide( id , {
9
        duration: 'long',
10
        transition: Fx.Transitions.Bounce.easeOut
11
    });
12
    mySlide.hide();
13
}
14

    
15
function slideOut( id ){
16
    var mySlide = new Fx.Slide( id );
17
    mySlide.slideOut();
18
}
19

    
20
function slideIn( id ){
21
    var mySlide = new Fx.Slide( id );
22
    mySlide.slideIn();
23
}
24

    
25
function getTarget( id ) {
26
    var k = 0;
27
    for ( var i = 0; i < id.length; i++ ){
28
        if( id.charAt( i ) == '[' ) {
29
            k = i;
30
            break;
31
        }
32
    }
33
    var newId = id.substring( k+1, id.length - 1  ) ;
34
    return newId;
35
}
36

    
37

    
38
function clicked( e ){
39
    //alert( "other exploder" );
40
    var targetId = getTarget( e.target.id );
41
    var newId = "input[" + targetId +"]";
42
    if ( cursordId == newId  )
43
        return;
44
    slideIn( newId );
45
    var temp = cursordId;
46
    cursordId = newId;
47
//alert( "other exploder exit" );
48
}
49

    
50
function ie_clicked(){
51
    //alert( "internet exploder" );
52
    var id = event.srcElement.id;
53
    var targetId = getTarget( id );
54
    var newId = "input[" + targetId +"]";
55
    if ( cursordId == newId  )
56
        return;
57
    slideIn( newId );
58
    var temp = cursordId;
59
    cursordId = newId;
60
//alert( "internet exploder exit" );
61
//slideOut( temp );
62
}
63

    
64

    
65
function initEvent( id ){
66
    var initVar = document.getElementById( "keyword[" +id +"]" );
67

    
68
    if (  initVar.addEventListener ){
69
        initVar.addEventListener( 'click', clicked , false );;
70
        var fields = document.getElementById( "input[" + id + "]" );
71
        hide( fields );
72
    } else {
73
    	//var inputContent = initVar.cloneNode(false);
74
        initVar.attachEvent( 'onclick', ie_clicked );
75
        var fields = document.getElementById( "input["+ id + "]" );
76
        slideOut( fields );
77
    }
78
}
79

    
80
function closeAdvanceOptions( id ){
81
    //alert( " test " +id );
82
    slideOut( id );
83
    cursordId = "";
84
}
85

    
86

    
87
function addNewInput(){
88
    var initVar = document.getElementById( "keyword[" +0 +"]" );
89
    var fields = document.getElementById( "input[0]" );
90
    var br1 = document.createElement( "br" );
91
    var br2 = document.createElement( "br" );
92
    var inputContent = initVar.cloneNode( false );
93
    var newfields = document.createElement( "div" );
94
    newfields.innerHTML = fields.innerHTML;
95
    var removeButton =  document.createElement( "i" );
96
    removeButton.innerHTML = " <a name = 'removeBtn' id='remove[" + index + "]' href='javascript:removeInput(" + index + ");'><img src='" + imgUrl + "' alt='remove criteria' align='absbottom' border='0' height='15' width='15'></a>";
97
    br1.id = "br1_" + index;
98
    br2.id = "br2_" + index;
99
    inputContent.id = "keyword[" + index +"]";
100
    newfields.id = "input[" + index +"]";
101
    var nlist = newfields.childNodes;
102
    for( i = 0; i < nlist.length; i++ ) {
103
        var link = nlist.item(i);
104
        if( link.id == "fields[0]" ) {
105
            link.selectedIndex = 0;
106
        }
107
    }
108

    
109
    document.body.appendChild( inputContent );
110

    
111
    if (  inputContent.addEventListener ){        
112
        inputContent.addEventListener( 'click', clicked , false );;
113
    } else {
114
        inputContent.attachEvent( 'onclick', ie_clicked );   
115
    }
116

    
117
    link =newfields.getElementsByTagName( "a" );
118
    link[0].href = "javascript:closeAdvanceOptions( 'input[" + index + "]' )";
119
    var addButton = document.getElementById( "callAdd" );
120
    var x = document.getElementById( "stop" );
121
    x.parentNode.insertBefore( inputContent, x );
122
    x.parentNode.insertBefore( removeButton, x );
123
    x.parentNode.insertBefore( addButton, x );
124
    x.parentNode.insertBefore( br1, x );
125
    x.parentNode.insertBefore( newfields, x );
126
    x.parentNode.insertBefore( br2, x );
127
    inputContent.value = "";
128
    hide( newfields );
129
    new Autocompleter.Request.JSON('keyword[' + index + ']', '/uoa-web-generic-latest/Recommender.action', {
130
            'postVar': 'keyword'
131
        });
132
    index++;
133
}
134

    
135
function removeInput( cursor ){
136
    var initVar = document.getElementById("keyword[" + cursor +"]" );
137
    var fields = document.getElementById( "input[" + cursor +"]" );
138
    var br1 =  document.getElementById("br1_" + cursor + "" );
139
    var br2 =  document.getElementById("br2_" + cursor + "" );
140
    var removeButton =  document.getElementById("remove[" + cursor + "]" );
141
    slideOut( initVar.id  );
142
    slideOut( br1.id  );
143
    slideOut( br2.id  );
144
    slideOut( removeButton.id  );
145
    slideOut( fields.id  );
146
    initVar.parentNode.removeChild( initVar );
147
    fields.parentNode.removeChild( fields );
148
    br1.parentNode.removeChild( br1 );
149
    br2.parentNode.removeChild( br2 );
150
    removeButton.parentNode.removeChild( removeButton );
151
    var removeBtns = document.getElementsByName( "removeBtn" );
152
    var nextPos = removeBtns.length;
153
    if(  nextPos == 0 ) {
154
        //alert( "0.1" );
155
        var addButton = document.getElementById( "callAdd" );
156
        //alert( "0.2" );
157
        var x = document.getElementById( "firstBr"  );
158
        //alert( "0.3" );
159
        x.parentNode.insertBefore( addButton, x );
160
    //alert( "0.4" );
161
    }  else {
162
        if(  cursor + 1  == index ) {
163
            index--;
164
        }
165
        var brns = document.getElementsByName( "removeBtn" );
166
        var addButton = document.getElementById( "callAdd" );
167
        var br = brns[ brns.length - 1 ];
168
        br.parentNode.insertBefore( addButton, br );
169
        addButton.parentNode.insertBefore( br, addButton );
170
    }
171
//alert( "6" );
172
}
173

    
174
function moveAddButton(){
175
    //var addButton = document.getElementById( "callAdd" );
176
    //var x = document.getElementById( "stop" );
177
    //x.parentNode.insertBefore( addButton, x );
178
    var removeBtns = document.getElementsByName( "removeBtn" );
179
    var nextPos = removeBtns.length;
180
    if(  nextPos == 0 ) {
181
        var addButton = document.getElementById( "callAdd" );
182
        var x = document.getElementById( "firstBr"  );
183
        x.parentNode.insertBefore( addButton, x );
184
    }  else {
185
        var brns = document.getElementsByName( "removeBtn" );
186
        var addButton = document.getElementById( "callAdd" );
187
        var br = brns[ brns.length - 1 ];
188
        br.parentNode.insertBefore( addButton, br );
189
        addButton.parentNode.insertBefore( br, addButton );
190
    }
191
}
(19-19/21)